Method of dynamically managing system control parameters in a digital image capture and processing system

ABSTRACT

A method employing automated real-time analysis of the exposure quality of captured digital images and automated reconfiguration of system control parameters (relating to illumination and exposure control operations) based on the results of such exposure quality analysis, so as to achieve improved system functionality and/or performance in diverse environments.

RELATED CASES

This Application is a Continuation of U.S. application Ser. No.11/408,268 filed Apr. 20, 2006, now U.S. Pat. No. 7,464,877; which is aContinuation-in-Part of the following U.S. applications: Ser. Nos.11/305,895 filed Dec. 16, 2005; 10/989,220 filed Nov. 15, 2004, now U.S.Pat. No. 7,490,774; 10/712,787 filed Nov. 13, 2003, now U.S. Pat. No.7,128,266; 10/893,800 filed Jul. 16, 2004, now U.S. Pat. No. 7,273,180;10/893,797 filed Jul. 16, 2004, now U.S. Pat. No. 7,188,770; 10/893,798filed Jul. 16, 2004, now U.S. Pat. No. 7,185,817; 10/894,476 filed Jul.16, 2004, now U.S. Pat. No. 7,178,733; 10/894,478 filed Jul. 19, 2004,now U.S. Pat. No. 7,357,325; 10/894,412 filed Jul. 19, 2004, now U.S.Pat. No. 7,213,762; 10/894,477 filed Jul. 19, 2004, now U.S. Pat. No.7,360,706; 10/895,271 filed Jul. 20, 2004, now U.S. Pat. No. 7,216,810;10/895,811 filed Jul. 20, 2004, now U.S. Pat. No. 7,225,988; 10/897,390filed Jul. 22, 2004, now U.S. Pat. No. 7,237,722; 10/897,389 filed Jul.22, 2004, now U.S. Pat. No. 7,225,989; 10/901,463 filed Jul. 27, 2004,now U.S. Pat. No. 7,086,595; 10/901,426 filed Jul. 27, 2004, now U.S.Pat. No. 7,278,575; 10/901,446 filed Jul. 27, 2004, now U.S. Pat. No.7,428,998; 10/901,461 filed Jul. 28, 2004, now U.S. Pat. No. 7,320,431;10/901,429 filed Jul. 28, 2004, now U.S. Pat. No. 7,243,847; 10/901,427filed Jul. 28, 2004, now U.S. Pat. No. 7,267,282; 10/901,445 filed Jul.28, 2004, now U.S. Pat. No. 7,240,844; 10/901,428 filed Jul. 28, 2004,now U.S. Pat. No. 7,293,714; 10/902,709 filed Jul. 29, 2004, now U.S.Pat. No. 7,270,272; 10/901,914 filed Jul. 29, 2004, now U.S. Pat. No.7,325,738; 10/902,710 filed Jul. 29, 2004, now U.S. Pat. No. 7,281,661;10/909,270 filed Jul. 30, 2004, now U.S. Pat. No. 7,284,705; and10/909,255 filed Jul. 30, 2004, now U.S. Pat. No. 7,299,986; 10/903,904filed Jul. 30, 2004, now U.S. Pat. No. 7,255,279. Each said patentapplication is assigned to and commonly owned by Metrologic Instruments,Inc. of Blackwood, N.J., and is incorporated herein by reference in itsentirety.

BACKGROUND OF INVENTION

1. Field of Invention

The present invention relates to hand-supportable and portable area-typedigital bar code readers having diverse modes of digital imageprocessing for reading one-dimensional (1D) and two-dimensional (2D) barcode symbols, as well as other forms of graphically-encodedintelligence.

2. Brief Description of the State of the Art

The state of the automatic-identification industry can be understood interms of (i) the different classes of bar code symbologies that havebeen developed and adopted by the industry, and (ii) the kinds ofapparatus developed and used to read such bar code symbologies invarious user environments.

In general, there are currently three major classes of bar codesymbologies, namely: one dimensional (1D) bar code symbologies, such asUPC/EAN, Code 39, etc.; 1D stacked bar code symbologies, Code 49,PDF417, etc.; and two-dimensional (2D) data matrix symbologies.

One Dimensional optical bar code readers are well known in the art.Examples of such readers include readers of the Metrologic Voyager®Series Laser Scanner manufactured by Metrologic Instruments, Inc. Suchreaders include processing circuits that are able to read onedimensional (1D) linear bar code symbologies, such as the UPC/EAN code,Code 39, etc., that are widely used in supermarkets. Such 1D linearsymbologies are characterized by data that is encoded along a singleaxis, in the widths of bars and spaces, so that such symbols can be readfrom a single scan along that axis, provided that the symbol is imagedwith a sufficiently high resolution along that axis.

In order to allow the encoding of larger amounts of data in a single barcode symbol, a number of 1D stacked bar code symbologies have beendeveloped, including Code 49, as described in U.S. Pat. No. 4,794,239(Allais), and PDF417, as described in U.S. Pat. No. 5,340,786 (Pavlidis,et al.). Stacked symbols partition the encoded data into multiple rows,each including a respective 1D bar code pattern, all or most of all ofwhich must be scanned and decoded, then linked together to form acomplete message. Scanning still requires relatively high resolution inone dimension only, but multiple linear scans are needed to read thewhole symbol.

The third class of bar code symbologies, known as 2D matrix symbologiesoffer orientation-free scanning and greater data densities andcapacities than their 1D counterparts. In 2D matrix codes, data isencoded as dark or light data elements within a regular polygonalmatrix, accompanied by graphical finder, orientation and referencestructures. When scanning 2D matrix codes, the horizontal and verticalrelationships of the data elements are recorded with about equalresolution.

In order to avoid having to use different types of optical readers toread these different types of bar code symbols, it is desirable to havean optical reader that is able to read symbols of any of these types,including their various subtypes, interchangeably and automatically.More particularly, it is desirable to have an optical reader that isable to read all three of the above-mentioned types of bar code symbols,without human intervention, i.e., automatically. This is turn, requiresthat the reader have the ability to automatically discriminate betweenand decode bar code symbols, based only on information read from thesymbol itself. Readers that have this ability are referred to as“auto-discriminating” or having an “auto-discrimination” capability.

If an auto-discriminating reader is able to read only 1D bar codesymbols (including their various subtypes), it may be said to have a 1Dauto-discrimination capability. Similarly, if it is able to read only 2Dbar code symbols, it may be said to have a 2D auto-discriminationcapability. If it is able to read both 1D and 2D bar code symbolsinterchangeably, it may be said to have a 1D/2D auto-discriminationcapability. Often, however, a reader is said to have a 1D/2Dauto-discrimination capability even if it is unable to discriminatebetween and decode 1D stacked bar code symbols.

Optical readers that are capable of 1D auto-discrimination are wellknown in the art. An early example of such a reader is Metrologic'sVoyagerCG® Laser Scanner, manufactured by Metrologic Instruments, Inc.

Optical readers, particularly hand held optical readers, that arecapable of 1D/2D auto-discrimination and based on the use of anasynchronously moving 1D image sensor, are described in U.S. Pat. Nos.5,288,985 and 5,354,977, which applications are hereby expresslyincorporated herein by reference. Other examples of hand held readers ofthis type, based on the use of a stationary 2D image sensor, aredescribed in U.S. Pat. Nos. 6,250,551; 5,932,862; 5,932,741; 5,942,741;5,929,418; 5,914,476; 5,831,254; 5,825,006; 5,784,102, which are alsohereby expressly incorporated herein by reference.

Optical readers, whether of the stationary or movable type, usuallyoperate at a fixed scanning rate, which means that the readers aredesigned to complete some fixed number of scans during a given amount oftime. This scanning rate generally has a value that is between 30 and200 scans/sec for 1D readers. In such readers, the results thesuccessive scans are decoded in the order of their occurrence.

Imaging-based bar code symbol readers have a number advantages overlaser scanning based bar code symbol readers, namely: they are morecapable of reading stacked 2D symbologies, such as the PDF 417symbology; more capable of reading matrix 2D symbologies, such as theData Matrix symbology; more capable of reading bar codes regardless oftheir orientation; have lower manufacturing costs; and have thepotential for use in other applications, which may or may not be relatedto bar code scanning, such as OCR, security systems, etc

Prior art imaging-based bar code symbol readers suffer from a number ofadditional shortcomings and drawbacks.

Most prior art hand held optical reading devices can be reprogrammed byreading bar codes from a bar code programming menu or with use of alocal host processor as taught in U.S. Pat. No. 5,929,418. However,these devices are generally constrained to operate within the modes inwhich they have been programmed to operate, either in the field or onthe bench, before deployment to end-user application environments.Consequently, the statically-configured nature of such prior artimaging-based bar code reading systems has limited their performance.

Prior art imaging-based bar code symbol readers with integratedillumination subsystems also support a relatively short range of theoptical depth of field. This limits the capabilities of such systemsfrom reading big or highly dense bar code labels.

Prior art imaging-based bar code symbol readers generally requireseparate apparatus for producing a visible aiming beam to help the userto aim the camera's field of view at the bar code label on a particulartarget object.

Prior art imaging-based bar code symbol readers generally requirecapturing multiple frames of image data of a bar code symbol, andspecial apparatus for synchronizing the decoding process with the imagecapture process within such readers, as required in U.S. Pat. Nos.5,932,862 and 5,942,741 assigned to Welch Allyn, Inc.

Prior art imaging-based bar code symbol readers generally require largearrays of LEDs in order to flood the field of view within which a barcode symbol might reside during image capture operations, oftentimeswasting larges amounts of electrical power which can be significant inportable or mobile imaging-based readers.

Prior art imaging-based bar code symbol readers generally requireprocessing the entire pixel data set of capture images to find anddecode bar code symbols represented therein. On the other hand, someprior art imaging systems use the inherent programmable (pixel)windowing feature within conventional CMOS image sensors to capture onlypartial image frames to reduce pixel data set processing and enjoyimprovements in image processing speed and thus imaging systemperformance.

Many prior art imaging-based bar code symbol readers also require theuse of decoding algorithms that seek to find the orientation of bar codeelements in a captured image by finding and analyzing the code words of2-D bar code symbologies represented therein.

Some prior art imaging-based bar code symbol readers generally requirethe use of a manually-actuated trigger to actuate the image capture andprocessing cycle thereof.

Prior art imaging-based bar code symbol readers generally requireseparate sources of illumination for producing visible aiming beams andfor producing visible illumination beams used to flood the field of viewof the bar code reader.

Prior art imaging-based bar code symbol readers generally utilize duringa single image capture and processing cycle, and a single decodingmethodology for decoding bar code symbols represented in capturedimages.

some prior art imaging-based bar code symbol readers require exposurecontrol circuitry integrated with the image detection array formeasuring the light exposure levels on selected portions thereof.

Also, many imaging-based readers also require processing portions ofcaptured images to detect the image intensities thereof and determinethe reflected light levels at the image detection component of thesystem, and thereafter to control the LED-based illumination sources toachieve the desired image exposure levels at the image detector.

Prior art imaging-based bar code symbol readers employing integratedillumination mechanisms control image brightness and contrast bycontrolling the time the image sensing device is exposed to the lightreflected from the imaged objects. While this method has been proven forthe CCD-based bar code scanners, it is not suitable, however, for theCMOS-based image sensing devices, which require a more sophisticatedshuttering mechanism, leading to increased complexity, less reliabilityand, ultimately, more expensive bar code scanning systems.

Prior art imaging-based bar code symbol readers generally require theuse of tables and bar code menus to manage which decoding algorithms areto be used within any particular mode of system operation to beprogrammed by reading bar code symbols from a bar code menu.

Also, due to the complexity of the hardware platforms of such prior artimaging-based bar code symbol readers, end-users are not permitted tomodify the features and functionalities of such system to theircustomized application requirements, other than changing limitedfunctions within the system by reading system-programming type bar codesymbols, as disclosed in U.S. Pat. Nos. 6,321,989; 5,965,863; 5,929,418;5,932,862, each being incorporated herein by reference.

Also, dedicated image-processing based bar code symbol reading devicesusually have very limited resources, such as the amount of volatile andnon-volatile memories. Therefore, they usually do not have a rich set oftools normally available to universal computer systems. Further, if acustomer or a third-party needs to enhance or alter the behavior of aconventional image-processing based bar code symbol reading system ordevice, they need to contact the device manufacturer and negotiate thenecessary changes in the “standard” software or the ways to integratetheir own software into the device, which usually involves the re-designor re-compilation of the software by the original equipment manufacturer(OEM). This software modification process is both costly and timeconsuming.

Prior Art Field of View (FOV) Aiming, Targeting, Indicating and MarkingTechniques

The need to target, indicate and/or mark the field of view (FOV) of 1Dand 2D image sensors within hand-held imagers has also been longrecognized in the industry.

In U.S. Pat. No. 4,877,949, Danielson et a disclosed on Aug. 8, 1966 animaging-based bar code symbol reader having a 2D image sensor with afield of view (FOV) and also a pair of LEDs mounted about a 1D (i.e.linear) image sensor to project a pair of light beams through the FOVfocusing optics and produce a pair of spots on a target surfacesupporting a 1D bar code, thereby indicating the location of the FOV onthe target and enable the user to align the bar code therewithin.

In U.S. Pat. No. 5,019,699, Koenck et al disclosed on Aug. 31, 1988 animaging-based bar code symbol reader having a 2D image sensor with afield of view (FOV) and also a set of four LEDs (each with lenses) aboutthe periphery of a 2D (i.e. area) image sensor to project four lightbeams through the FOV focusing optics and produce four spots on a targetsurface to mark the corners of the FOV intersecting with the target, tohelp the user align 1D and 2D bar codes therewithin in an easy manner.

In FIGS. 48-50 of U.S. Pat. Nos. 5,841,121 and 6,681,994, Koenckdisclosed on Nov. 21, 1990, an imaging-based bar code symbol readerhaving a 2D image sensor with a field of view (FOV) and also apparatusfor marking the perimeter of the FOV, using four light sources and lightshaping optics (e.g. cylindrical lens).

In U.S. Pat. No. 5,378,883, Batterman et al disclosed on Jul. 29, 1991,a hand-held imaging-based bar code symbol reader having a 2D imagesensor with a field of view (FOV) and also a laser light source andfixed lens to produce a spotter beam that helps the operator aim thereader at a candidate bar code symbol. As disclosed, the spotter beam isalso used measure the distance to the bar code symbol during automaticfocus control operations supported within the bar code symbol reader.

In U.S. Pat. No. 5,659,167, Wang et al disclosed on Apr. 5, 1994, animaging-based bar code symbol reader comprising a 2D image sensor with afield of view (FOV), a user display for displaying a visualrepresentation of a dataform (e.g. bar code symbol), and visual guidemarks on the user display for indicating whether or not the dataformbeing imaged is in focus when its image is within the guide marks, andout of focus when its image is within the guide marks.

In U.S. Pat. No. 6,347,163, Roustaei disclosed on May 19, 1995, a systemfor reading 2D images comprising a 2D image sensor, an array of LEDillumination sources, and an image framing device which uses a VLD forproducing a laser beam and a light diffractive optical element fortransforming the laser beam into a plurality of beamlets having a beamedge and a beamlet spacing at the 2D image, which is at least as largeas the width of the 2D image.

In U.S. Pat. No. 5,783,811, Feng et al disclosed on Feb. 26, 1996, aportable imaging assembly comprising a 2D image sensor with a field ofview (FOV) and also a set of LEDs and a lens array which produces across-hair type illumination pattern in the FOV for aiming the imagingassembly at a target.

In U.S. Pat. No. 5,793,033, Feng et al disclosed on Mar. 29, 1996, aportable imaging assembly comprising a 2D image sensor with a field ofview (FOV), and a viewing assembly having a pivoting member which, whenpositioned a predetermined distance from the operator's eye, provides aview through its opening which corresponds to the target area (FOV) ofthe imaging assembly for displaying a visual representation of adataform (e.g. bar code symbol).

In U.S. Pat. No. 5,780,834, Havens et al disclosed on May 14, 1996, aportable imaging and illumination optics assembly having a 2D imagesensor with a field of view (FOV), an array of LEDs for illumination,and an aiming or spotting light (LED) indicating the location of theFOV.

In U.S. Pat. No. 5,949,057, Feng et al disclosed on Jan. 31, 1997, aportable imaging device comprising a 2D image sensor with a field ofview (FOV), and first and second sets of targeting LEDs and first andsecond targeting optics, which produces first and second illuminationtargeting patterns, which substantially coincide to form a singleillumination targeting pattern when the imaging device is arranged at a“best focus” position.

In U.S. Pat. No. 6,060,722, Havens et al disclosed on Sep. 24, 1997, aportable imaging and illumination optics assembly comprising a 2D imagesensor with a field of view (FOV), an array of LEDs for illumination,and an aiming pattern generator including at least a point-like aiminglight source and a light diffractive element for producing an aimingpattern that remains approximately coincident with the FOV of theimaging device over the range of the reader-to-target distances overwhich the reader is used.

In U.S. Pat. No. 6,340,114, filed Jun. 12, 1998, Correa et al disclosedan imaging engine comprising a 2D image sensor with a field of view(FOV) and an aiming pattern generator using one or more laser diodes andone or more light diffractive elements to produce multiple aiming frameshaving different, partially overlapping, solid angle fields ordimensions corresponding to the different fields of view of the lensassembly employed in the imaging engine. The aiming pattern includes acentrally-located marker or cross-hair pattern. Each aiming frameconsists of four corner markers, each comprising a plurality ofilluminated spots, for example, two multiple spot lines intersecting atan angle of 90 degrees.

As a result of limitations in the field of view (FOV) marking, targetingand pointing subsystems employed within prior art imaging-based bar codesymbol readers, such prior art readers generally fail to enable users toprecisely identify which portions of the FOV read high-density 1D barcodes with the ease and simplicity of laser scanning based bar codesymbol readers, and also 2D symbologies, such as PDF 417 and DataMatrix.

Also, as a result of limitations in the mechanical, electrical, optical,and software design of prior art imaging-based bar code symbol readers,such prior art readers generally: (i) fail to enable users to readhigh-density 1D bar codes with the ease and simplicity of laser scanningbased bar code symbol readers and also 2D symbologies, such as PDF 417and Data Matrix, and (iii) have not enabled end-users to modify thefeatures and functionalities of such prior art systems without detailedknowledge about the hard-ware platform, communication interfaces and theuser interfaces of such systems.

Also, control operations in prior art image-processing bar code symbolreading systems have not been sufficiently flexible or agile to adapt tothe demanding lighting conditions presented in challenging retail andindustrial work environments where 1D and 2D bar code symbols need to bereliably read.

Thus, there is a great need in the art for an improved method of andapparatus for reading bar code symbols using image capture andprocessing techniques which avoid the shortcomings and drawbacks ofprior art methods and apparatus.

OBJECTS AND SUMMARY OF THE PRESENT INVENTION

Accordingly, a primary object of the present invention is to provide anovel method of and apparatus for enabling the reading of 1D and 2D barcode symbologies using image capture and processing based systems anddevices, which avoid the shortcomings and drawbacks of prior art methodsand apparatus.

Another object of the present invention is to provide a novelhand-supportable digital-imaging based bar code symbol reader capable ofautomatically reading 1D and 2D bar code symbologies using thestate-of-the art imaging technology, and at the speed and with thereliability achieved by conventional laser scanning bar code symbolreaders.

Another object of the present invention is to provide a novelhand-supportable digital-imaging based bar code symbol reader that iscapable of reading stacked 2D symbologies such as PDF417, as well asData Matrix.

Another object of the present invention is to provide a novelhand-supportable digital-imaging based bar code symbol reader that iscapable of reading bar codes independent of their orientation withrespect to the reader.

Another object of the present invention is to provide a novelhand-supportable digital-imaging based bar code symbol reader thatutilizes an architecture that can be used in other applications, whichmay or may not be related to bar code scanning, such as OCR, OCV,security systems, etc.

Another object of the present invention is to provide a novelhand-supportable digital-imaging based bar code symbol reader that iscapable of reading high-density bar codes, as simply and effectively as“flying-spot” type laser scanners do.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader capable of reading 1D and 2D barcode symbologies in a manner as convenient to the end users as whenusing a conventional laser scanning bar code symbol reader.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader having a multi-mode bar code symbolreading subsystem, which is dynamically reconfigured in response toreal-time processing operations carried out on captured images.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader having an integrated LED-basedmulti-mode illumination subsystem for generating a visible narrow-areaillumination beam for aiming on a target object and illuminating a 1Dbar code symbol aligned therewith during a narrow-area image capturemode of the system, and thereafter illuminating randomly-oriented 1D or2D bar code symbols on the target object during a wide-area imagecapture mode of the system.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing an integrated multi-modeillumination subsystem which generates a visible narrow-areaillumination beam for aiming onto a target object, then illuminates a 1Dbar code symbol aligned therewith, captures an image thereof, andthereafter generates a wide-area illumination beam for illuminating 1Dor 2D bar code symbols on the object and capturing an image thereof andprocessing the same to read the bar codes represented therein.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing automatic object presenceand range detection to control the generation of near-field andfar-field wide-area illumination beams during bar code symbol imagingoperations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a CMOS-type image sensingarray using global exposure control techniques.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a CMOS-type image sensingarray with a band-pass optical filter subsystem integrated within thehand-supportable housing thereof, to allow only narrow-band illuminationfrom the multi-mode illumination subsystem to expose the CMOS imagesensing array.

Another object of the present invention is to provide a hand-supportableimaging-based auto-discriminating 1D/2D bar code symbol reader employinga multi-mode image-processing based bar code symbol reading subsystemdynamically reconfigurable in response to real-time image analysisduring bar code reading operations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a continuously operatingautomatic light exposure measurement and illumination control subsystem.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a multi-mode led-basedillumination subsystem.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader having 1D/2D auto-discriminationcapabilities.

Another object of the present invention is to provide a method ofperforming auto-discrimination of 1D/2D bar code symbologies in animaging-based bar code symbol reader having both narrow-area andwide-area image capture modes of operation.

Another object of the present invention is to provide a method of andapparatus for processing captured images within an imaging-based barcode symbol reader in order to read (i.e. recognize) bar code symbolsgraphically represented therein.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing helically-sweepingfeature-extraction analysis on captured 2D images of objects, referencedfrom the center thereof.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing simple image processingoperations applied in an outwardly-directed manner on capturednarrow-area images of objects bearing 1D bar code symbols.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing an integrated LED-basedmulti-mode illumination subsystem with far-field and near-fieldillumination arrays responsive to control signals generated by anIR-based object presence and range detection subsystem during a firstmode of system operation and a system control subsystem during a secondmode of system operation.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing an integrated LED-basedmulti-mode illumination subsystem driven by an automatic light exposuremeasurement and illumination control subsystem responsive to controlactivation signals generated by a CMOS image sensing array and anIR-based object presence and range detection subsystem during objectillumination and image capturing operations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a CMOS image sensingarray which activates LED illumination driver circuitry to expose atarget object to narrowly-tuned LED-based illumination when all of rowsof pixels in said CMOS image sensing array are in a state ofintegration, thereby capturing high quality images independent of therelative motion between said bar code reader and the target object.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader, wherein the exposure time ofnarrow-band illumination onto its CMOS image sensing array is managed bycontrolling the illumination time of its LED-based illumination arraysusing control signals generated by an automatic light exposuremeasurement and illumination control subsystem and the CMOS imagesensing array while controlling narrow-band illumination thereto by wayof a band-pass optical filter subsystem.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a mechanism ofcontrolling the image brightness and contrast by controlling the timethe illumination subsystem illuminates the target object, thus, avoidingthe need for a complex shuttering mechanism for CMOS-based image sensingarrays employed therein.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a multi-modeimage-processing bar code symbol reading subsystem that automaticallyswitches its modes of reading during a single bar code symbol readingcycle, and a plurality of different bar code symbology decodingalgorithms are applied within each mode of reading.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which uses several image processingmethods to determine bar code orientation in a he ierarchical scheme.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which uses several different scan-datafiltering techniques to generate bar-space counts.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem which uses bar and space stitching forcorrecting perspective and projection transforms, and also decodingdamaged labels.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which uses incremental processing ofimage data while an image is being progressively acquired.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which uses low-rise histogram analysis todetermine bright spots in captured images.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which detects all 1D symbologies andPDF417 omnidirectionally.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem which decodes UPC/EAN, 1205, C128, C39,C93, CBR omnidirectionally.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which uses low incidence of“false-positives”

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem, which works with images stored in memoryduring a snap-shot mode of operation.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem which works with images acquiredprogressively during an incremental mode of operation.

Another object of the present invention is to provide an imaging-basedbar code symbol reader having a multi-mode image-processing based barcode symbol reading subsystem which operates on captured high-resolutionimages having an image size of 32768×32768 pixels.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader which is simple to use, isinexpensive to manufacture, requires as few elements as possible, has asmall as possible form factor, employs no moving elements (i.e. nodynamic focus, and no zoom), and employs all spherical surfaces andcommon glasses.

Another object of the present invention is to provide a low-cost,high-resolution imaging-based bar code symbol reader foromni-directional reading of regular 1D bar codes and two-dimensional barcodes, such as the PDF417 symbology.

Another object of the present invention is to provide such animaging-based bar code symbol reader having target applications at pointof sales in convenience stores, gas stations, quick markets, and liquorstores, where 2D bar code reading is required for age verification andthe like.

Another object of the present invention is to provide an improvedimaging-based bar code symbol reading engine for integration intodiverse types of information capture and processing systems, such as barcode driven portable data terminals (PDT) having wireless interfaceswith their base stations, reverse-vending machines, retail bar codedriven kiosks, and the like.

Another object of the present invention is to provide a novel method ofand apparatus for enabling global exposure control in an imaging-basedbar code symbol reader using a CMOS image sensing array.

Another object of the present invention is to provide a hand-supportableimaging-based bar code reading system that employs a novel method ofillumination, which automatically reduces noise in detected digitalimages caused by specular reflection during illumination and imagingoperations.

Another object of the present invention is to provide a hand-supportabledigital-imaging based bar code symbol reader supporting narrow-area andwide-area modes of illumination and image capture.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader having a multi-mode bar code symbolimage processor dynamically reconfigurable in response to real-timeimage processing operations carried out on captured images.

Another object of the present invention is to provide a hand-supportablesemi-automatic imaging-based bar code reading system wherein anLED-based illumination subsystem automatically illuminates a targetobject in a narrow-area field of illumination while a multi-mode imageformation and detection (IFD) subsystem captures a narrow-area image ofan aligned 1D bar code symbol therein, and when manually switched into awide-area illumination and image capture mode by a trigger switch, theLED-based illumination subsystem illuminates the target object in awide-area field of illumination, while the multi-mode IFD subsystemcaptures a wide-area image of randomly-oriented 1D or 2D code symbolsthereon.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a multi-mode illuminationsubsystem enabling narrow-area illumination for aiming at a targetobject and illuminating aligned 1D bar code symbols during thenarrow-area image capture mode, and wide-area illumination forilluminating randomly-oriented 1D and 2D bar code symbols during thewide-area image capture mode.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing automatic object presenceand range detection to control the generation of near-field andfar-field wide-area illumination during bar code symbol imagingoperations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a CMOS-type image sensorusing global exposure techniques.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a CMOS-type image sensingarray with a band-pass optical filter subsystem integrated within thehand-supportable housing thereof.

Another object of the present invention is to provide a hand-supportableimaging-based auto-discriminating 1D/2D bar code symbol reader employinga multi-mode image processing bar code symbol reading subsystem having aplurality of modes of operation which are dynamically reconfigurable inresponse to real-time image analysis.

Another object of the present invention is to provide a hand-supportablemulti-mode imaging-based bar code symbol reader employing an automaticillumination and exposure control subsystem that automatically controlsthe operation of an LED-based multi-mode illumination subsystem so thatdetected objects are sufficiently illuminated and good quality digitalimages of detected objects are formed and detected by a multi-mode imageformation and detection subsystem during illumination and imagingoperations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a tri-mode LED-basedillumination subsystem.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing a multi-modeimage-processing based bar code reading subsystem with modularimage-processing architecture.

Another object of the present invention is to provide a method ofperforming auto-discrimination of 1D/2D bar code symbologies in asemi-automatic hand-supportable imaging-based bar code symbol readerhaving narrow-area and wide-area image capture modes of operation.

Another object of the present invention is to provide a method of andapparatus for processing captured digital images of objects within asemi-automatic hand-supportable imaging-based bar code symbol reader soas to read 1D and/or 2D bar code symbols graphically representedtherein.

Another object of the present invention is to provide a digital-imagingbased bar code symbol reading system employing an LED-based multi-modeillumination subsystem with far-field and near-field LED illuminationarrays driven by an automatic light exposure measurement andillumination control subsystem responsive to control activation signalsgenerated by an automatic object presence and range detection subsystem.

Another object of the present invention is to provide a digital-imagingbased bar code symbol reader employing an LED-based illuminationsubsystem driven by an automatic light exposure measurement and controlsubsystem responsive to control activation signals generated by anarea-type image sensing array and an automatic object presence detectionsubsystem during object illumination and image capture operations.

Another object of the present invention is to provide a hand-supportableimaging-based bar code symbol reader employing an automatic lightexposure measurement and illumination control subsystem which controlsLED illumination driver circuitry to expose an automatically detectedobject to a field of narrow-band LED-based illumination only whensubstantially all rows of pixels in a CMOS image sensing array are in astate of integration, thereby capturing high quality digital imagesindependent of the relative motion between said bar code symbol readerand the object.

Another object of the present invention is to provide a digital-imagingbased bar code reading system wherein the time duration that an CMOSimage sensing array is exposed to narrow-band illumination from anLED-based illumination array is managed by controlling the time thatsaid LED-based illumination array generates narrow-band illumination inresponse to control activation signals generated by the CMOS imagesensing array and an automatic object presence detection subsystemaboard said system.

Another object of the present invention is to provide a hand-supportabledigital-imaging based bar code symbol reading system having a subsystemfor automatically processing a captured digital image along a set ofparallel virtual scan lines spaced-apart by a number of pixel-offsetdistances proportional to the maximum pixel height of the region ofinterest (roi) in the captured digital image containing a bar codesymbol.

Another object of the present invention is to provide a digital-imagingbased bar code symbol reading system employing a multi-modeimage-processing symbol reading subsystem that switches its modes ofreading during a single bar code symbol reading cycle, and within eachsaid mode of reading, automatically applies a different image-processingbased bar code symbol reading methodology.

Another object of the present invention is to provide a method of andsystem for determining the lower limit of decoding resolution in animaging-based bar code symbol reader.

Another object of the present invention is to provide a hand-supportabledigital-imaging based bar code symbol reading system employing a methodof intelligently illuminating an object so as to generate a digitalimage thereof which is substantially free of noise caused byspecular-type reflection of illumination off said object duringillumination and imaging operations.

Another object of the present invention is to provide a hand-supportablesemi-automatic digital-imaging based bar code symbol reading systemrealized upon a multi-tier modular software platform.

Another object of the present invention is to provide a digital-imagingbased bar code symbol driven portable data terminal system.

Another object of the present invention is to provide a hand-supportabledigital-imaging based bar code reading system wherein, during eachimaging cycle, a single frame of pixel data is automatically detected bya CMOS area-type image sensing array when substantially all rows ofpixels therein are in a state of integration and have a commonintegration time, and then pixel data is transmitted from said CMOSarea-type image sensing array into a FIFO buffer, and then mapped intomemory for subsequent image processing.

Another object of the present invention is to provide a method ofautomatic illumination control within a hand-supportable imager havingan image sensing array with a field of view, and a LED-basedillumination subsystem, wherein the method employs a software-basedimage illumination metering program that involves analyzing the spatialintensity of a captured image.

Another object of the present invention is to provide a hand-supportabledigital-imaging based bar code symbol reading device comprising anautomatic light exposure measurement and illumination control subsystemand a software-based illumination metering program, for improveillumination control.

Another object of the present invention is to provide a hand-supportabledigital image-processing based bar code symbol reading system employingan image cropping zone (ICZ) framing and post-image capture croppingprocess.

Another object of the present invention is to provide an imaging-basedbar code symbol reading system that allows customers, VARs and thirdparties to modify a set of predefined features and functionalities ofthe system without needing to contact the system's OEM and negotiateways of integrating their desired enhancements to the system.

Another object of the present invention is to provide an imaging-basedbar code symbol reading system that allows customers, VARs and thirdparties to independently design their own software according to the OEMspecifications, and plug this software into the system, therebyeffectively changing the device's behavior, without detailed knowledgeabout the hard-ware platform of the system, its communications withoutside environment, and user-related interfaces

Another object of the present invention is to provide a customer of thesuch an image-processing based bar code symbol reading system, or anythird-party thereof, with a way of and means for enhancing or alteringthe behavior of the system without interfering with underlying hardware,communications and user-related interfaces.

Another object of the present invention is to provide end-users of suchan image-processing based bar code symbol reading system, as well asthird-parties, with a way of and means for designing, developing, andinstalling in the device, their own plug-in modules without a need forknowledge of details of the device's hardware.

Another object of the present invention is to provide original equipmentmanufacturers (OEM) with a way of and means for installing the OEM'splug-in modules into an image-processing based bar code symbol readingsystem, without knowledge of the third-party's plug-in (software)modules that have been installed therein, provided establishedspecifications for system features and functionalities for thethird-party plug-ins are met.

Another object of the present invention is to provide customers of animage-processing based bar code symbol reading system, and third-partiesthereof, with a way of and means for installing their own modules toenhance or alter the “standard” behavior of the device according totheir own needs and independently from each other.

Another object of the present invention is to provide an imaging-basedbar code symbol reading system that supportsdesigner/manufacturer-constrained system behavior modification, withoutrequiring detailed knowledge about the hard-ware platform of the system,its communications with outside environment, and user-relatedinterfaces.

Another object of the present invention is to provide hand-supportabledigital imaging-based bar code symbol reading system employing ahigh-precision field of view (FOV) marking subsystem employing automaticimage cropping, scaling, and perspective correction.

Another object of the present invention is to provide a digital imagecapture and processing engine employing a high-precision field of view(FOV) marking subsystem employing automatic image cropping, scaling, andperspective correction.

Another object of the present invention is to provide a digital imagecapture and processing engine employing optical waveguide technology forthe measuring light intensity within central portion of FOV of theengine for use in automatic illumination control of one or more LEDillumination arrays illuminating the field of the view (FOV) of thesystem.

Another object of the present invention is to provide a digitalimage-processing based bar code symbol reading system that is highlyflexible and agile to adapt to the demanding lighting conditionspresented in challenging retail and industrial work environments where1D and 2D bar code symbols need to be reliably read.

Another object of the present invention is to provide a novel method ofdynamically and adaptively controlling system control parameters (SCPs)in a multi-mode image capture and processing system, wherein (i)automated real-time exposure quality analysis of captured digital imagesis automatically performed in a user-transparent manner, and (ii) systemcontrol parameters (e.g. illumination and exposure control parameters)are automated reconfigured based on the results of such exposure qualityanalysis, so as to achieve improved system functionality and/orperformance in diverse environments.

Another object of the present invention is to provide such a multi-modeimaging-based bar code symbol reading system, wherein such systemcontrol parameters (SCPs) include, for example: the shutter mode of theimage sensing array employed in the system; the electronic gain of theimage sensing array; the programmable exposure time for each block ofimaging pixels within the image sensing array; the illumination mode ofthe system (e.g. ambient/OFF, LED continuous, and LED strobe/flash);automatic illumination control (i.e. ON or OFF); illumination field type(e.g. narrow-area near-field illumination, and wide-area far-fieldillumination, narrow-area field of illumination, and wide-area field ofillumination); image capture mode (e.g. narrow-area image capture mode,wide-area image capture mode); image capture control (e.g. single frame,video frames); and automatic object detection mode of operation (e.g. ONor OFF).

Another object of the present invention is to provide an image captureand processing system, wherein object illumination and image capturingoperations are dynamically controlled by an adaptive control processinvolving the real-time analysis of the exposure quality of captureddigital images and the reconfiguration of system control parameters(SCPs) based on the results of such exposure quality analysis.

Another object of the present invention is to provide an image captureand processing engine, wherein object illumination and image capturingoperations are dynamically controlled by an adaptive control processinvolving the real-time analysis of the exposure quality of captureddigital images and the reconfiguration of system control parameters(SCPs) based on the results of such exposure quality analysis.

Another object of the present invention is to provide an automaticimaging-based bar code symbol reading system, wherein objectillumination and image capturing operations are dynamically controlledby an adaptive control process involving the real-time analysis of theexposure quality of captured digital images and the reconfiguration ofsystem control parameters (SCPs) based on the results of such exposurequality analysis.

Another object of the present invention is to provide a digital imagecapture and processing engine which is adapted for POS applications,wherein its illumination/aiming subassembly having a central aperture ismounted adjacent a light transmission (i.e. imaging) window in theengine housing, whereas the remaining subassembly is mounted relative tothe bottom of the engine housing so that the optical axis of the cameralens is parallel with respect to the light transmission aperture, and afield of view (FOV) folding mirror is mounted beneath theillumination/aiming subassembly for directing the FOV of the system outthrough the central aperture formed in the illumination/aimingsubassembly.

Another object of the present invention is to provide an automaticimaging-based bar code symbol reading system supporting apresentation-type mode of operation using wide-area illumination andvideo image capture and processing techniques.

Another object of the present invention is to provide such an automaticimaging-based bar code symbol reading system, wherein itsimage-processing based bar code symbol reading subsystem carries outreal-time exposure quality analysis of captured digital images inaccordance with the adaptive system control method of the presentinvention.

Another object of the present invention is to provide an automaticimaging-based bar code symbol reading system supporting a pass-throughmode of operation using narrow-area illumination and video image captureand processing techniques, as well as a presentation-type mode ofoperation using wide-area illumination and video image capture andprocessing techniques.

Another object of the present invention is to provide such an automaticimaging-based bar code symbol reading system, wherein an automatic lightexposure measurement and illumination control subsystem is adapted tomeasure the light exposure on a central portion of the CMOS imagesensing array and control the operation of the LED-based multi-modeillumination subsystem in cooperation with the multi-mode imageprocessing based bar code symbol reading subsystem, carrying outreal-time exposure quality analysis of captured digital images inaccordance with the adaptive system control method of the presentinvention.

Another object of the present invention is to provide such automaticimaging-based bar code symbol reading system, wherein a narrow-areafield of illumination and image capture is oriented in the verticaldirection with respect to the counter surface of the POS environment, tosupport the pass-through mode of the system, and an automatic IR-basedobject presence and direction detection subsystem which comprises fourindependent IR-based object presence and direction detection channels.

Another object of the present invention is to provide such automaticimaging-based bar code symbol reading system, wherein the automaticIR-based object presence and direction detection subsystem supports fourindependent IR-based object presence and direction detection channelswhich automatically generate activation control signals for fourorthogonal directions within the FOV of the system, which signals areautomatically received and processed by a signal analyzer and controllogic block to generate a trigger signal for use by the systemcontroller.

Another object of the present invention is to provide a price lookupunit (PLU) system employing a digital image capture and processingsubsystem of the present invention identifying bar coded consumerproducts in retail store environments, and displaying the price thereofon the LCD panel integrated in the system._(—)

These and other objects of the present invention will become moreapparently understood hereinafter and in the Claims to Inventionappended hereto.

BRIEF DESCRIPTION OF THE DRAWINGS OF PRESENT INVENTION

For a more complete understanding of how to practice the Objects of thePresent Invention, the following Detailed Description of theIllustrative Embodiments can be read in conjunction with theaccompanying Drawings, briefly described below.

FIG. 1A is a rear perspective view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1B is a front perspective view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1C is an elevated left side view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1D is an elevated right side view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1E is an elevated rear view of the hand-supportable digital-imagingbased bar code symbol reading device of the first illustrativeembodiment of the present invention;

FIG. 1F is an elevated front view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention, showing componentsassociated with its illumination subsystem and its image capturingsubsystem;

FIG. 1G is a bottom view of the hand-supportable digital-imaging basedbar code symbol reading device of the first illustrative embodiment ofthe present invention;

FIG. 1H is a top rear view of the hand-supportable digital-imaging basedbar code symbol reading device of the first illustrative embodiment ofthe present invention;

FIG. 1I is a first perspective exploded view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1J is a second perspective exploded view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 1K is a third perspective exploded view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment of the present invention;

FIG. 2A1 is a schematic block diagram representative of a system designfor the hand-supportable digital-imaging based bar code symbol readingdevice illustrated in FIGS. 1A through 1L, wherein the system design isshown comprising (1) a Multi-Mode Area-Type Image Formation andDetection (i.e. Camera) Subsystem having image formation (camera) opticsfor producing a field of view (FOV) upon an object to be imaged and aCMOS or like area-type image sensing array for detecting imaged lightreflected off the object during illumination operations in either (i) anarrow-area image capture mode in which a few central rows of pixels onthe image sensing array are enabled, or (ii) a wide-area image capturemode in which all rows of the image sensing array are enabled, (2) aMulti-Mode LED-Based Illumination Subsystem for producing narrow andwide area fields of narrow-band illumination within the FOV of the ImageFormation And Detection Subsystem during narrow and wide area modes ofimage capture, respectively, so that only light transmitted from theMulti-Mode Illumination Subsystem and reflected from the illuminatedobject and transmitted through a narrow-band transmission-type opticalfilter realized within the hand-supportable housing (i.e. using ared-wavelength high-pass reflecting window filter element disposed atthe light transmission aperture thereof and a low-pass filter before theimage sensor) is detected by the image sensor and all other componentsof ambient light are substantially rejected, (3) an IR-based objectpresence and range detection subsystem for producing an IR-based objectdetection field within the FOV of the Image Formation and DetectionSubsystem, (4) an Automatic Light Exposure Measurement and IlluminationControl Subsystem for controlling the operation of the LED-BasedMulti-Mode Illumination Subsystem, (5) an Image Capturing and BufferingSubsystem for capturing and buffering 2-D images detected by the ImageFormation and Detection Subsystem, (6) a Multimode Image-ProcessingBased Bar Code Symbol Reading Subsystem for processing images capturedand buffered by the Image Capturing and Buffering Subsystem and reading1D and 2D bar code symbols represented, and (7) an Input/OutputSubsystem for outputting processed image data and the like to anexternal host system or other information receiving or respondingdevice, in which each said subsystem component is integrated about (7) aSystem Control Subsystem, as shown;

FIG. 2A2 is a schematic block representation of the Multi-ModeImage-Processing Based Bar Code Symbol Reading Subsystem, realized usingthe three-tier computing platform illustrated in FIG. 2B;

FIG. 2B is a schematic diagram representative of a system implementationfor the hand-supportable digital-imaging based bar code symbol readingdevice illustrated in FIGS. 1A through 2A2, wherein the systemimplementation is shown comprising (1) an illumination board 33 carryingcomponents realizing electronic functions performed by the Multi-ModeLED-Based Illumination Subsystem and the Automatic Light ExposureMeasurement And Illumination Control Subsystem, (2) a CMOS camera boardcarrying a high resolution (1280×1024 7-bit 6 micron pixel size) CMOSimage sensor array running at 25 Mhz master clock, at 7 frames/second at1280*1024 resolution with randomly accessible region of interest (ROI)window capabilities, realizing electronic functions performed by themulti-mode area-type Image Formation and Detection Subsystem, (3) a CPUboard (i.e. computing platform) including (i) an Intel Sabinal 32-BitMicroprocessor PXA210 running at 200 Mhz 1.0 core voltage with a 16 bit100 Mhz external bus speed, (ii) an expandable (e.g. 7+ megabyte) IntelJ3 Asynchronous 16-bit Flash memory, (iii) an 16 Megabytes of 100 MHzSDRAM, (iv) an Xilinx Spartan II FPGA FIFO 39 running at 50 Mhz clockfrequency and 60 MB/Sec data rate, configured to control the cameratimings and drive an image acquisition process, (v) a multimedia cardsocket, for realizing the other subsystems of the system, (vi) a powermanagement module for the MCU adjustable by the system bus, and (vii) apair of UARTs (one for an IRDA port and one for a JTAG port), (4) aninterface board for realizing the functions performed by the I/Osubsystem, and (5) an IR-based object presence and range detectioncircuit for realizing the IR-based Object Presence And Range DetectionSubsystem;

FIG. 3A is a schematic representation showing the spatial relationshipsbetween the near and far and narrow and wide area fields of narrow-bandillumination within the FOV of the Multi-Mode Image Formation andDetection Subsystem during narrow and wide area image capture modes ofoperation;

FIG. 3B is a perspective partially cut-away view of the hand-supportabledigital-imaging based bar code symbol reading device of the firstillustrative embodiment, showing the LED-Based Multi-Mode IlluminationSubsystem transmitting visible narrow-band illumination through itsnarrow-band transmission-type optical filter system and illuminating anobject with such narrow-band illumination, and also showing the imageformation optics, including the low pass filter before the image sensingarray, for collecting and focusing light rays reflected from theilluminated object, so that an image of the object is formed anddetected using only the optical components of light contained within thenarrow-band of illumination, while all other components of ambient lightare substantially rejected before image detection at the image sensingarray;

FIG. 3C is a schematic representation showing the geometrical layout ofthe optical components used within the hand-supportable digital-imagingbased bar code symbol reading device of the first illustrativeembodiment, wherein the red-wavelength reflecting high-pass lens elementis positioned at the imaging window of the device before the imageformation lens elements, while the low-pass filter is disposed beforethe image sensor of between the image formation elements, so as to imagethe object at the image sensing array using only optical componentswithin the narrow-band of illumination, while rejecting all othercomponents of ambient light;

FIG. 3D is a schematic representation of the image formation opticalsubsystem employed within the hand-supportable digital-imaging based barcode symbol reading device of the first illustrative embodiment, whereinall three lenses are made as small as possible (with a maximum diameterof 12 mm), all have spherical surfaces, all are made from common glass,e.g. LAK2 (˜LaK9), ZF10 (=SF8), LAF2 (˜LaF3);

FIG. 3E is a schematic representation of the lens holding assemblyemployed in the image formation optical subsystem of thehand-supportable digital-imaging based bar code symbol reading device ofthe first illustrative embodiment, showing a two-piece barrel structurewhich holds the lens elements, and a base structure which holds theimage sensing array, wherein the assembly is configured so that thebarrel structure slides within the base structure so as to focus theassembly;

FIG. 3F1 is a first schematic representation showing, from a side view,the physical position of the LEDs used in the Multi-Mode IlluminationSubsystem, in relation to the image formation lens assembly, the imagesensing array employed therein (e.g. a Motorola MCM20027 or NationalSemiconductor LM9638 CMOS 2-D image sensing array having a 1280×1024pixel resolution (½″ format), 6 micron pixel size, 13.5 Mhz clock rate,with randomly accessible region of interest (ROI) window capabilities);

FIG. 3F2 is a second schematic representation showing, from an axialview, the physical layout of the LEDs used in the Multi-ModeIllumination Subsystem of the digital-imaging based bar code symbolreading device, shown in relation to the image formation lens assembly,and the image sensing array employed therein;

FIG. 4A1 is a schematic representation specifying the range ofnarrow-area illumination, near-field wide-area illumination, andfar-field wide-area illumination produced from the LED-Based Multi-ModeIllumination Subsystem employed in the hand-supportable digital-imagingbased bar code symbol reading device of the present invention;

FIG. 4A2 is a table specifying the geometrical properties andcharacteristics of each illumination mode supported by the LED-BasedMulti-Mode Illumination Subsystem employed in the hand-supportabledigital-imaging based bar code symbol reading device of the presentinvention;

FIG. 4B is a schematic representation illustrating the physicalarrangement of LED light sources associated with the narrow-areaillumination array and the near-field and far-field wide-areaillumination arrays employed in the digital-imaging based bar codesymbol reading device of the present invention, wherein the LEDs in thefar-field wide-area illuminating arrays are located behind sphericallenses, the LEDs in the narrow-area illuminating array are disposedbehind cylindrical lenses, and the LEDs in the near-field wide-areailluminating array are unlensed in the first illustrative embodiment ofthe Digital-imaging based Bar Code Reading Device;

FIG. 4C1 is a graphical representation showing the Lambertian emittanceversus wavelength characteristics of the LEDs used to implement thenarrow-area illumination array in the Multi-Mode Illumination Subsystemof the present invention;

FIG. 4C2 is a graphical representation showing the Lambertian emittanceversus polar angle characteristics of the LEDs used to implement thenarrow-area illumination array in the Multi-Mode Illumination Subsystemof the present invention;

FIG. 4C3 is a schematic representation of the cylindrical lenses usedbefore the LEDs in the narrow-area (linear) illumination arrays in thedigital-imaging based bar code symbol reading device of the presentinvention, wherein the first surface of the cylindrical lens is curvedvertically to create a narrow-area (i.e. linear) illumination pattern,and the second surface of the cylindrical lens is curved horizontally tocontrol the height of the of the narrow-area illumination pattern toproduce a narrow-area (i.e. linear) illumination field;

FIG. 4C4 is a schematic representation of the layout of the pairs ofLEDs and two cylindrical lenses used to implement the narrow-area(linear) illumination array employed in the digital-imaging based barcode symbol reading device of the present invention;

FIG. 4C5 is a set of six illumination profiles for the narrow-area(linear) illumination fields produced by the narrow-area (linear)illumination array employed in the digital-imaging based bar code symbolreading device of the illustrative embodiment, taken at 30, 40, 50, 80,120, and 220 millimeters along the field away from the imaging window(i.e. working distance) of the digital-imaging based bar code symbolreading device, illustrating that the spatial intensity of thenarrow-area illumination field begins to become substantially uniform atabout 80 millimeters;

FIG. 4D1 is a graphical representation showing the Lambertian emittanceversus wavelength characteristics of the LEDs used to implement the widearea illumination arrays employed in the digital-imaging based bar codesymbol reading device of the present invention;

FIG. 4D2 is a graphical representation showing the Lambertian emittanceversus polar angle characteristics of the LEDs used to implement thefar-field and near-field wide-area illumination arrays employed in thedigital-imaging based bar code symbol reading device of the presentinvention;

FIG. 4D3 is a schematic representation of the piano-convex lenses usedbefore the LEDs in the far-field wide-area illumination arrays in theillumination subsystem of the present invention,

FIG. 4D4 is a schematic representation of the layout of LEDs andpiano-convex lenses used to implement the far and narrow wide-areaillumination array employed in the digital-imaging based bar code symbolreading device of the present invention, wherein the illumination beamproduced therefrom is aimed by positioning the lenses at angles beforethe LEDs in the near-field (and far-field) wide-area illumination arraysemployed therein;

FIG. 4D5 is a set of six illumination profiles for the near-fieldwide-area illumination fields produced by the near-field wide-areaillumination arrays employed in the digital-imaging based bar codesymbol reading device of the illustrative embodiment, taken at 10, 20,30, 40, 60, and 100 millimeters along the field away from the imagingwindow (i.e. working distance) of the digital-imaging based bar codesymbol reading device, illustrating that the spatial intensity of thenear-field wide-area illumination field begins to become substantiallyuniform at about 40 millimeters;

FIG. 4D6 is a set of three illumination profiles for the far-fieldwide-area illumination fields produced by the far-field wide-areaillumination arrays employed in the digital-imaging based bar codesymbol reading device of the illustrative embodiment, taken at 100, 150and 220 millimeters along the field away from the imaging window (i.e.working distance) of the digital-imaging based bar code symbol readingdevice, illustrating that the spatial intensity of the far-fieldwide-area illumination field begins to become substantially uniform atabout 100 millimeters;

FIG. 4D7 is a table illustrating a preferred method of calculating thepixel intensity value for the center of the far-field wide-areaillumination field produced from the Multi-Mode Illumination Subsystememployed in the digital-imaging based bar code symbol reading device ofthe present invention, showing a significant signal strength (greaterthan 80 DN);

FIG. 5A1 is a schematic representation showing the red-wavelengthreflecting (high-pass) imaging window integrated within thehand-supportable housing of the digital-imaging based bar code symbolreading device, and the low-pass optical filter disposed before its CMOSimage sensing array therewithin, cooperate to form a narrow-band opticalfilter subsystem for transmitting substantially only the very narrowband of wavelengths (e.g. 620-700 nanometers) of visible illuminationproduced from the Multi-Mode Illumination Subsystem employed in thedigital-imaging based bar code symbol reading device, and rejecting allother optical wavelengths outside this narrow optical band howevergenerated (i.e. ambient light sources);

FIG. 5A2 is a schematic representation of transmission characteristics(energy versus wavelength) associated with the low-pass optical filterelement disposed after the red-wavelength reflecting high-pass imagingwindow within the hand-supportable housing of the digital-imaging basedbar code symbol reading device, but before its CMOS image sensing array,showing that optical wavelengths below 620 nanometers are transmittedand wavelengths above 620 nm are substantially blocked (e.g. absorbed orreflected);

FIG. 5A3 is a schematic representation of transmission characteristics(energy versus wavelength) associated with the red-wavelength reflectinghigh-pass imaging window integrated within the hand-supportable housingof the digital-imaging based bar code symbol reading device of thepresent invention, showing that optical wavelengths above 700 nanometersare transmitted and wavelengths below 700 nm are substantially blocked(e.g. absorbed or reflected);

FIG. 5A4 is a schematic representation of the transmissioncharacteristics of the narrow-based spectral filter subsystem integratedwithin the hand-supportable imaging-based bar code symbol reading deviceof the present invention, plotted against the spectral characteristicsof the LED-emissions produced from the Multi-Mode Illumination Subsystemof the illustrative embodiment of the present invention;

FIG. 6A is a schematic representation showing the geometrical layout ofthe spherical/parabolic light reflecting/collecting mirror andphotodiode associated with the Automatic Light Exposure Measurement andIllumination Control Subsystem, and arranged within the hand-supportabledigital-imaging based bar code symbol reading device of the illustrativeembodiment, wherein incident illumination is collected from a selectedportion of the center of the FOV of the system using a spherical lightcollecting mirror, and then focused upon a photodiode for detection ofthe intensity of reflected illumination and subsequent processing by theAutomatic Light Exposure Measurement and Illumination Control Subsystem,so as to then control the illumination produced by the LED-basedMulti-Mode Illumination Subsystem employed in the digital-imaging basedbar code symbol reading device of the present invention;

FIG. 6B is a schematic diagram of the Automatic Light ExposureMeasurement and Illumination Control Subsystem employed in thehand-supportable digital-imaging based bar code symbol reading device ofthe present invention, wherein illumination is collected from the centerof the FOV of the system and automatically detected so as to generate acontrol signal for driving, at the proper intensity, the narrow-areaillumination array as well as the far-field and narrow-field wide-areaillumination arrays of the Multi-Mode Illumination Subsystem, so thatthe CMOS image sensing array produces digital images of illuminatedobjects of sufficient brightness;

FIGS. 6C1 and 6C2, taken together, set forth a schematic diagram of ahybrid analog/digital circuit designed to implement the Automatic LightExposure Measurement and Illumination Control Subsystem of FIG. 6Bemployed in the hand-supportable digital-imaging based bar code symbolreading device of the present invention;

FIG. 6D is a schematic diagram showing that, in accordance with theprinciples of the present invention, the CMOS image sensing arrayemployed in the digital-imaging based bar code symbol reading device ofthe illustrative embodiment, once activated by the System ControlSubsystem (or directly by the trigger switch), and when all rows in theimage sensing array are in a state of integration operation,automatically activates the Automatic Light Exposure Measurement andIllumination Control Subsystem which, in response thereto, automaticallyactivates the LED illumination driver circuitry to automatically drivethe appropriate LED illumination arrays associated with the Multi-ModeIllumination Subsystem in a precise manner and globally expose theentire CMOS image detection array with narrowly tuned LED-basedillumination when all of its rows of pixels are in a state ofintegration, and thus have a common integration time, thereby capturinghigh quality images independent of the relative motion between the barcode reader and the object;

FIGS. 6E1 and 6E2, taken together, set forth a flow chart describing thesteps involved in carrying out the global exposure control method of thepresent invention, within the digital-imaging based bar code symbolreading device of the illustrative embodiments;

FIG. 7 is a schematic block diagram of the IR-based automatic ObjectPresence and Range Detection Subsystem employed in the hand-supportabledigital-imaging based bar code symbol reading device of the presentinvention, wherein a first range indication control signal is generatedupon detection of an object within the near-field region of theMulti-Mode Illumination Subsystem, and wherein a second range indicationcontrol signal is generated upon detection of an object within thefar-field region of the Multi-Mode Illumination Subsystem;

FIG. 8 is a schematic representation of the hand-supportabledigital-imaging based bar code symbol reading device of the presentinvention, showing that its CMOS image sensing array is operablyconnected to its microprocessor through a FIFO (realized by way of aFPGA) and a system bus, and that its SDRAM is also operably connected tothe microprocessor by way of the system bus, enabling the mapping ofpixel data captured by the imaging array into the SDRAM under thecontrol of the direct memory access (DMA) module within themicroprocessor;

FIG. 9 is a schematic representation showing how the bytes of pixel datacaptured by the CMOS imaging array within the hand-supportabledigital-imaging based bar code symbol reading device of the presentinvention, are mapped into the addressable memory storage locations ofits SDRAM during each image capture cycle carried out within the device;

FIG. 10 is a schematic representation showing the software modulesassociated with the three-tier software architecture of thehand-supportable digital-imaging based bar code symbol reading device ofthe present invention, namely: the Main Task module, the CodeGate Taskmodule, the Narrow-Area Illumination Task module, the Metroset Taskmodule, the Application Events Manager module, the User Commands Tablemodule, the Command Handler module, Plug-In Controller, and Plug-InLibraries and Configuration Files, all residing within the Applicationlayer of the software architecture; the Tasks Manager module, the EventsDispatcher module, the Input/Output Manager module, the User CommandsManager module, the Timer Subsystem module, the Input/Output Subsystemmodule and the Memory Control Subsystem module residing with the SystemCore (SCORE) layer of the software architecture; and the Linux Kernalmodule in operable communication with the Plug-In Controller, the LinuxFile System module, and Device Drivers modules residing within the LinuxOperating System (OS) layer of the software architecture, and inoperable communication with an external (host0 Plug-In DevelopmentPlatform via standard or proprietary communication interfaces;

FIG. 11 is a perspective view of an illustrative embodiment of acomputer software development platform for developing plug-ins for taskswithin the application layer of the imaging-based bar code readingsystem of the present invention;

FIG. 12A is a schematic representation of the Events Dispatcher softwaremodule which provides a means of signaling and delivering events to theApplication Events Manager, including the starting of a new task,stopping a currently running task, doing something, or doing nothing andignoring the event;

FIG. 12B is a table listing examples of system-defined events which canoccur and be dispatched within the hand-supportable digital-imagingbased bar code symbol reading device of the present invention, namely:SCORE_EVENT_POWER_UP which signals the completion of system start-up andinvolves no parameters; _SCORE_EVENT_TIMEOUT which signals the timeoutof the logical timer, and involves the parameter “pointer to timer id”;SCORE_EVENT_UNEXPECTED_INPUT which signals that the unexpected inputdata is available and involves the parameter “pointer to connection id”;SCORE_EVENT_TRIG_ON which signals that the user pulled the triggerswitch and involves no parameters; SCORE_EVENT_TRIG_OFF which signalsthat the user released the trigger switch and involves no parameters;SCORE_EVENT_OBJECT_DETECT_ON which signals that the object is positionedunder the bar code reader and involves no parameters;SCORE_EVENT_OBJECT_DETECT_OFF which signals that the object is removedfrom the field of view of the bar code reader and involves noparameters; SCORE_EVENT_EXIT_TASK which signals the end of the taskexecution and involves the pointer UTID; and SCORE_EVENT_ABORT_TASKwhich signals the aborting of a task during execution;

FIG. 12C is a schematic representation of the Tasks Manager softwaremodule which provides a means for executing and stopping applicationspecific tasks (i.e. threads);

FIG. 12D is a schematic representation of the Input/Output Managersoftware module (i.e Input/Output Subsystem), which runs in thebackground and monitors activities of external devices and userconnections, and signals appropriate events to the Application Layer,which such activities are detected;

FIGS. 12E1 and 12E2 set forth a schematic representation of theInput/Output Subsystem software module which provides a means forcreating and deleting input/output connections, and communicating withexternal systems and devices;

FIGS. 12F1 and 12F2 set forth a schematic representation of the TimerSubsystem which provides a means for creating, deleting, and utilizinglogical timers;

FIGS. 12G1 and 12G2 set forth a schematic representation of the MemoryControl Subsystem which provides an interface for managing thethread-level dynamic memory with the device, fully compatible withstandard dynamic memory management functions, as well as a means forbuffering collected data;

FIG. 12H is a schematic representation of the user commands managerwhich provides a standard way of entering user commands, and executingapplication modules responsible for handling the same;

FIG. 12I is a schematic representation of the device driver softwaremodules, which includes trigger switch drivers for establishing asoftware connection with the hardware-based manually-actuated triggerswitch employed on the digital-imaging based bar code symbol readingdevice, an image acquisition driver for implementing image acquisitionfunctionality aboard the digital-imaging based bar code symbol readingdevice, and an IR driver for implementing object detection functionalityaboard the imaging-based bar code symbol reading device;

FIG. 13A is an exemplary flow chart representation showing how when theuser points the bar code reader towards a bar code symbol, the IR devicedrivers detect that object within the field, and then wakes up theInput/Output Manager software module at the System Core Layer;

FIG. 13B is an exemplary flow chart representation showing how upondetecting an object, the Input/Output Manager posts theSCORE_OBJECT_DETECT_ON event to the Events Dispatcher software module;

FIG. 13C is an exemplary flow chart representation showing how, inresponse to detecting an object, the Events Dispatcher software modulepasses the SCORE_OBJECT_DETECT_ON event to the Application Layer;

FIG. 13D is an exemplary flow chart representation showing how uponreceiving the SCORE_OBJECT_DETECT_ON event at the Application Layer, theApplication Events Manager executes an event handling routine whichactivates the narrow-area illumination array associated with theMulti-Mode Illumination Subsystem, and executes either the CodeGate Taskdescribed in FIG. 13E (when required by System Mode in which the Deviceis programmed) or the Narrow-Area Illumination Task described in FIG.13M (when required by System Mode in which the Device is programmed);

FIG. 13E is an exemplary flow chart representation showing how whatoperations are carried out when the CodeGate Task is (enabled and)executed within the Application Layer;

FIG. 13F is an exemplary flow chart representation showing how, when theuser pulls the trigger switch on the bar code reader while the Code Taskis executing, the trigger device driver wakes up the Input/OutputManager at the System Core Layer;

FIG. 13G is an exemplary flow chart representation showing how, inresponse to waking up, the Input/Output Manager posts theSCORE_TRIGGER_ON event to the Events Dispatcher;

FIG. 13H is an exemplary flow chart representation showing how theEvents Dispatcher passes on the SCORE_TRIGGER_ON event to theApplication Events Manager at the Application Layer;

FIGS. 13I1 and 13I2, taken together, set forth an exemplary flow chartrepresentation showing how the Application Events Manager responds tothe SCORE_TRIGGER_ON event by invoking a handling routine within theTask Manager at the System Core Layer which deactivates the narrow-areaillumination array associated with the Multi-Mode IlluminationSubsystem, cancels the CodeGate Task or the Narrow-Area IlluminationTask (depending on which System Mode the Device is programmed), andexecutes the Main Task;

FIG. 13J is an exemplary flow chart representation showing whatoperations are carried out when the Main Task is (enabled and) executedwithin the Application Layer;

FIG. 13K is an exemplary flow chart representation showing whatoperations are carried out when the Data Output Procedure, called in theMain Task, is executed within the Input/Output Subsystem software modulein the Application Layer;

FIG. 13L is an exemplary flow chart representation showing decodedsymbol character data being sent from the Input/Output Subsystem to theDevice Drivers within the Linux OS Layer of the system;

FIG. 13M is an exemplary flow chart representation showing whatoperations are carried out when the Narrow-Area Illumination Task is(enabled and) executed within the Application Layer;

FIGS. 13M1 through 13M3, taken together, set forth a flow chartdescribing a novel method of generating wide-area illumination, for useduring the Main Task routine so as to illuminate objects with awide-area illumination field in a manner, which substantially reducesspecular-type reflection at the CMOS image sensing array in thedigital-imaging based bar code reading device of the present invention;

FIG. 14 is a table listing various bar code symbologies supported by theMulti-Mode Bar Code Symbol Reading Subsystem module employed within thehand-supportable digital-imaging based bar code reading device of thepresent invention;

FIG. 15 is a table listing the four primary modes in which theMulti-Mode Bar Code Symbol Reading Subsystem module can be programmed tooperate, namely: the Automatic Mode wherein the Multi-Mode Bar CodeSymbol Reading Subsystem is configured to automatically process acaptured frame of digital image data so as to search for one or more barcodes represented therein in an incremental manner, and to continuesearching until the entire image is processed; the Manual Mode whereinthe Multi-Mode Bar Code Symbol Reading Subsystem is configured toautomatically process a captured frame of digital image data, startingfrom the center or sweep spot of the image at which the user would haveaimed the bar code reader, so as to search for (i.e. find) one or morebar code symbols represented therein, by searching in a helical mannerthrough frames or blocks of extracted image feature data and marking thesame and processing the corresponding raw digital image data until a barcode symbol is recognized/read within the captured frame of image data;the ROI-Specific Mode wherein the Multi-Mode Bar Code Symbol ReadingSubsystem is configured to automatically process a specified “region ofinterest” (ROI) in a captured frame of digital image data so as tosearch for one or more bar codes represented therein, in response tocoordinate data specifying the location of the bar code within the fieldof view of the multi-mode image formation and detection system; theNoFinder Mode wherein the Multi-Mode Bar Code Symbol Reading Subsystemis configured to automatically process a captured narrow-area (linear)frame of digital image data, without feature extraction and markingoperations used in the Automatic and Manual Modes, so as read one ormore bar code symbols represented therein; and the Omniscan Mode,wherein the Multi-Mode Bar Code Symbol Reading Subsystem is configuredto automatically process a captured frame of digital image data alongany one or more predetermined virtual scan line orientations, withoutfeature extraction and marking operations used in the Automatic andManual Modes, so as to read one or more bar code symbols representedtherein;

FIG. 16 is an exemplary flow chart representation showing the stepsinvolved in setting up and cleaning up the software sub-Applicationentitled “Multi-Mode Image-Processing Based Bar Code Symbol ReadingSubsystem”, once called from either (i) the CodeGate Task softwaremodule at the Block entitled READ BAR CODE(S) IN CAPTURED NARROW-AREAIMAGE indicated in FIG. 13E, or (ii) the Main Task software module atthe Block entitled “READ BAR CODE(S) IN CAPTURED WIDE-AREA IMAGE”indicated in FIG. 13J;

FIGS. 17A and 17B provide a table listing the primary Programmable Modesof Bar Code Reading Operation supported within the hand-supportableDigital-imaging based Bar Code Symbol Reading Device of the presentinvention, namely:

Programmed Mode of System Operation No. 1—Manually-TriggeredSingle-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Reading Subsystem;

Programmed Mode Of System Operation No. 2—Manually-TriggeredMultiple-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Reading Subsystem;

Programmed Mode Of System Operation No. 3—Manually-TriggeredSingle-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode AndThe Automatic Or Manual Modes of the Multi-Mode Bar Code ReadingSubsystem;

Programmed Mode of System Operation No. 4—Manually-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode AndThe Automatic Or Manual Modes of the Multi-Mode Bar Code ReadingSubsystem;

Programmed Mode of System Operation No. 5—Manually-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder ModeAnd The Automatic Or Manual Modes of the Multi-Mode Bar Code ReadingSubsystem;

Programmed Mode of System Operation No. 6—Automatically-TriggeredSingle-Attempt 1D Single-Read Mode Employing The No-Finder Mode Of theMulti-Mode Bar Code Reading Subsystem:

Programmed Mode of System Operation No. 7—Automatically-TriggeredMulti-Attempt 1D Single-Read Mode Employing The No-Finder Mode Of theMulti-Mode Bar Code Reading Subsystem;

Programmed Mode of System Operation No. 7—Automatically-TriggeredMulti-Attempt 1D/2D Single-Read Mode Employing The No-Finder Mode andManual and/or Automatic Modes Of the Multi-Mode Bar Code ReadingSubsystem;

Programmed Mode of System Operation No. 9—Automatically-TriggeredMulti-Attempt 1D/2D Multiple-Read Mode Employing The No-Finder Mode andManual and/or Automatic Modes Of the Multi-Mode Bar Code ReadingSubsystem;

Programmable Mode of System Operation No. 10—Automatically-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing The Manual, Automaticor Omniscan Modes Of the Multi-Mode Bar Code Reading Subsystem;

Programmed Mode of System Operation No. 11—Semi-Automatic-TriggeredSingle-Attempt 1D/2D Single-Read Mode Employing The No-Finder Mode AndThe Automatic Or Manual Modes Of the Multi-Mode Bar Code ReadingSubsystem;

Programmable Mode of System Operation No. 12—Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing The No-Finder Mode AndThe Automatic Or Manual Modes Of the Multi-Mode Bar Code ReadingSubsystem;

Programmable Mode of Operation No. 13—Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing The No-Finder ModeAnd The Automatic Or Manual Modes Of the Multi-Mode Bar Code ReadingSubsystem;

Programmable Mode of Operation No. 14—Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing The No-Finder ModeAnd The Omniscan Modes Of the Multi-Mode Bar Code Reading Subsystem;

Programmable Mode of Operation No.15—Continuously-Automatically-Triggered Multiple-Attempt 1D/2DMultiple-Read Mode Employing The Automatic, Manual and/or Omniscan ModesOf the Multi-Mode Bar Code Reading Subsystem;

Programmable Mode of System Operation No. 16—Diagnostic Mode OfImaging-Based Bar Code Reader Operation; and

Programmable Mode of System Operation No. 17—Live Video Mode OfImaging-Based Bar Code Reader Operation;

FIG. 18 is a schematic representation specifying the four modes ofillumination produced from the Multi-Mode Illumination Subsystememployed in the second illustrative embodiment of the Digital-imagingbased Bar Code Symbol Reader of the present invention, which supportsboth near and far fields of narrow-area illumination generated duringthe narrow-area image capture mode of its Multi-Mode Image Formation andDetection Subsystem;

FIG. 19 is a schematic representation illustrating the physicalarrangement of LEDs and light focusing lenses associated with the nearand far field narrow-area and wide-area illumination arrays employed inthe digital-imaging based bar code reading device according to thesecond illustrative embodiment of the present invention;

FIG. 20A is a first perspective view of a second illustrative embodimentof the portable POS digital-imaging based bar code reading device of thepresent invention, shown having a hand-supportable housing of adifferent form factor than that of the first illustrative embodiment,and configured for use in its hands-free/presentation mode of operation,supporting primarily wide-area image capture;

FIG. 20B is a second perspective view of the second illustrativeembodiment of the portable POS digital-imaging based bar code readingdevice of the present invention, shown configured and operated in itshands-free/presentation mode of operation, supporting primarilywide-area image capture;

FIG. 20C is a third perspective view of the second illustrativeembodiment of the portable digital-imaging based bar code reading deviceof the present invention, showing configured and operated in a hands-ontype mode, supporting both narrow and wide area modes of image capture;

FIG. 21 is a perspective view of a third illustrative embodiment of thedigital-imaging based bar code reading device of the present invention,realized in the form of a Multi-Mode Image Capture And Processing Enginethat can be readily integrated into various kinds of informationcollection and processing systems, including wireless portable dataterminals (PDTs), reverse-vending machines, retail product informationkiosks and the like;

FIG. 22 is a schematic representation of a wireless bar code-drivenportable data terminal embodying the imaging-based bar code symbolreading engine of the present invention, shown configured and operatedin a hands-on mode;

FIG. 23 is a perspective view of the wireless bar code-driven portabledata terminal of FIG. 22 shown configured and operated in a hands-onmode, wherein the imaging-based bar code symbol reading engine embodiedtherein is used to read a bar code symbol on a package and the symbolcharacter data representative of the read bar code is beingautomatically transmitted to its cradle-providing base station by way ofan RF-enabled 2-way data communication link;

FIG. 24 is a side view of the wireless bar code-driven portable dataterminal of FIGS. 31 and 32 shown configured and operated in ahands-free mode, wherein the imaging-based bar code symbol readingengine is configured in a wide-area image capture mode of operation,suitable for presentation-type bar code reading at point of sale (POS)environments;

FIG. 25 is a block schematic diagram showing the various subsystemblocks associated with a design model for the Wireless Hand-SupportableBar Code Driven Portable Data Terminal System of FIGS. 31, 32 and 33,shown interfaced with possible host systems and/or networks;

FIG. 26 is a schematic block diagram representative of a system designfor the hand-supportable digital-imaging based bar code symbol readingdevice according to an alternative embodiment of the present invention,wherein the system design is similar to that shown in FIG. 2A1, exceptthat the Automatic Light Exposure Measurement and Illumination ControlSubsystem is adapted to measure the light exposure on a central portionof the CMOS image sensing array and control the operation of theLED-Based Multi-Mode Illumination Subsystem in cooperation with asoftware-based illumination metering program realized within theMulti-Mode Image Processing Based Bar Code Symbol Reading Subsystem,involving the real-time analysis of captured digital images forunacceptable spatial-intensity distributions;

FIG. 26A is a schematic representation of the system illustrated in,showing in greater detail how the current illumination durationdetermined by the Automatic Light Exposure Measurement and IlluminationControl Subsystem is automatically over-ridden by the illuminationduration computed by a software-implemented, image-processing basedillumination metering program carried out within the Image-ProcessingBased Bar Code Symbol Reading Subsystem, and used to control theillumination produced during the next image frame captured by thesystem, in accordance with this enhanced auto-illumination controlscheme of the present invention;

FIG. 26B is a flow chart setting forth the steps involved in carryingout the enhanced auto-illumination control scheme illustrated in FIG.26A;

FIGS. 27A and 27B, taken together, set forth a flow chart illustratingthe steps involved in carrying out the adaptive method of controllingsystem operations (e.g. illumination, image capturing, image processing,etc.) within the multi-mode image-processing based bar code symbolreader system of the illustrative embodiment of the present invention,wherein the “exposure quality” of captured digital images isautomatically analyzed in real-time and system control parameters (SCPs)are automatically reconfigured based on the results of such exposurequality analysis;

FIG. 27C is a schematic representation illustrating the Single FrameShutter Mode of operation of the CMOS image sensing array employedwithin the multi-mode image-processing based bar code symbol readersystem of the illustrative embodiment of the present invention, whilethe system is operated in its Global Exposure Mode of Operationillustrated in FIGS. 6D through 6E2;

FIG. 27D is a schematic representation illustrating the Rolling ShutterMode of operation of the CMOS image sensing array employed within themulti-mode image-processing based bar code symbol reader system of theillustrative embodiment of the present invention, while the system isoperated according to its adaptive control method illustrated in FIGS.27A through 27B;

FIG. 27E is a schematic representation illustrating the Video Mode ofoperation of the CMOS image sensing array employed within the multi-modeimage-processing based bar code symbol reader system of the illustrativeembodiment of the present invention, while the system is operatedaccording to its adaptive control method illustrated in FIGS. 27Athrough 27B;

FIG. 28 is a perspective view of a hand-supportable image-processingbased bar code symbol reader employing an image cropping zone (ICZ)targeting/marking pattern, and automatic post-image capture croppingmethods to abstract the ICZ within which the targeted object to beimaged has been encompassed during illumination and imaging operations;

FIG. 29 is a schematic system diagram of the hand-supportableimage-processing based bar code symbol reader shown in FIG. 28, shownemploying an image cropping zone (ICZ) illumination targeting/markingsource(s) operated under the control of the System Control Subsystem;

FIG. 30 is a flow chart setting forth the steps involved in carrying outthe first illustrative embodiment of the image cropping zonetargeting/marking and post-image capture cropping process of the presentinvention embodied within the bar code symbol reader illustrated inFIGS. 28 and 29;

FIG. 31 is a perspective view of another illustrative embodiment of thehand-supportable image-processing based bar code symbol reader of thepresent invention, showing its visible illumination-based Image CroppingPattern (ICP) being projected within the field of view (FOV) of itsMulti-Mode Image Formation And Detection Subsystem;

FIG. 32 is a schematic block diagram representative of a system designfor the hand-supportable digital-imaging based bar code symbol readingdevice illustrated in FIG. 31, wherein the system design is showncomprising (1) a Multi-Mode Area-Type Image Formation and Detection(i.e. Camera) Subsystem having image formation (camera) optics forproducing a field of view (FOV) upon an object to be imaged and a CMOSor like area-type image sensing array for detecting imaged lightreflected off the object during illumination operations in either (i) anarrow-area image capture mode in which a few central rows of pixels onthe image sensing array are enabled, or (ii) a wide-area image capturemode in which substantially all rows of the image sensing array areenabled, (2) a Multi-Mode LED-Based Illumination Subsystem for producingnarrow and wide area fields of narrow-band illumination within the FOVof the Image Formation And Detection Subsystem during narrow and widearea modes of image capture, respectively, so that only lighttransmitted from the Multi-Mode Illumination Subsystem and reflectedfrom the illuminated object and transmitted through a narrow-bandtransmission-type optical filter realized within the hand-supportablehousing (i.e. using a red-wavelength high-pass reflecting window filterelement disposed at the light transmission aperture thereof and alow-pass filter before the image sensor) is detected by the image sensorand all other components of ambient light are substantially rejected,and an Image Cropping Pattern Generator for generating a visibleillumination-based Image Cropping Pattern (ICP) projected within thefield of view (FOV) of the Multi-Mode Area-type Image Formation andDetection Subsystem, (3) an IR-based object presence and range detectionsubsystem for producing an IR-based object detection field within theFOV of the Image Formation and Detection Subsystem, (4) an AutomaticLight Exposure Measurement and Illumination Control Subsystem formeasuring illumination levels in the FOV and controlling the operationof the LED-Based Multi-Mode Illumination Subsystem, (5) an ImageCapturing and Buffering Subsystem for capturing and buffering 2-D imagesdetected by the Image Formation and Detection Subsystem, (6) an ImageProcessing and Cropped Image Locating Module for processing captured andbuffered images to locate the image region corresponding to the regiondefined by the Image Cropping Pattern (ICP), (7) an Image PerspectiveCorrection and Scaling Module for correcting the perspective of thecropped image region and scaling the corrected image to a predetermined(i.e. fixed) pixel image size suitable for decode-processing, (8) aMultimode Image-Processing Based Bar Code Symbol Reading Subsystem forprocessing cropped and scaled images generated by the Image Perspectiveand Scaling Module and reading 1D and 2D bar code symbols represented,and (9) an Input/Output Subsystem for outputting processed image dataand the like to an external host system or other information receivingor responding device, in which each said subsystem component isintegrated about (10) a System Control Subsystem, as shown;

FIG. 33A is a schematic representation of a first illustrativeembodiment of the VLD-based Image Cropping Pattern Generator of thepresent invention, comprising a VLD located at the symmetrical center ofthe focal plane of a pair of flat-convex lenses arranged before the VLD,and capable of generating and projecting a two (2) dot image croppingpattern (ICP) within the field of view of the of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIGS. 33B and 33C, taken together provide a composite ray-tracingdiagram for the first illustrative embodiment of the VLD-based ImageCropping Pattern Generator depicted in FIG. 33A, showing that the pairof flat-convex lenses focus naturally diverging light rays from the VLDinto two substantially parallel beams of laser illumination which toproduce a two (2) dot image cropping pattern (ICP) within the field ofview of the Multi-Mode Area-type Image Formation and DetectionSubsystem, wherein the distance between the two spots of illumination inthe ICP is a function of distance from the pair of lenses;

FIG. 33D1 is a simulated image of the two dot Image Cropping Patternproduced by the ICP Generator of FIG. 33A, at a distance of 40 mm fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem;

FIG. 33D2 is a simulated image of the two dot Image Cropping Patternproduced by the ICP Generator of FIG. 33A, at a distance of 80 mm fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem;

FIG. 33D3 is a simulated image of the two dot Image Cropping Patternproduced by the ICP Generator of FIG. 33A, at a distance of 120 mm fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem;

FIG. 33D4 is a simulated image of the two dot Image Cropping Patternproduced by the ICP Generator of FIG. 33A, at a distance of 160 mm fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem;

FIG. 33D5 is a simulated image of the two dot Image Cropping Patternproduced by the ICP Generator of FIG. 33A, at a distance of 200 mm fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem;

FIG. 34A is a schematic representation of a second illustrativeembodiment of the VLD-based Image Cropping Pattern Generator of thepresent invention, comprising a VLD located at the focus of a biconicallens (having a biconical surface and a cylindrical surface) arrangedbefore the VLD, and four flat-convex lenses arranged in four corners,and which optical assembly is capable of generating and projecting afour (4) dot image cropping pattern (ICP) within the field of view ofthe of the Multi-Mode Area-type Image Formation and Detection Subsystem;

FIGS. 34B and 34C, taken together provide a composite ray-tracingdiagram for the third illustrative embodiment of the VLD-based ImageCropping Pattern Generator depicted in FIG. 34A, showing that thebiconical lens enlarges naturally diverging light rays from the VLD inthe cylindrical direction (but not the other) and thereafter, the fourflat-convex lenses focus the enlarged laser light beam to generate afour parallel beams of laser illumination which form a four (4) dotimage cropping pattern (ICP) within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem, wherein the spacingbetween the four dots of illumination in the ICP is a function ofdistance from the flat-convex lens;

FIG. 34D1 is a simulated image of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at a distance of 40 mm fromits flat-convex lens, within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIG. 34D2 is a simulated image of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at a distance of 80 mm fromits flat-convex lens, within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIG. 34D3 is a simulated image of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at a distance of 120 mm fromits flat-convex lens, within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIG. 34D4 is a simulated image of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at a distance of 160 mm fromits flat-convex lens, within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIG. 34D5 is a simulated image of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at a distance of 200 mm fromits flat-convex lens, within the field of view of the Multi-ModeArea-type Image Formation and Detection Subsystem;

FIG. 35 is a schematic representation of a third illustrative embodimentof the VLD-based Image Cropping Pattern Generator of the presentinvention, comprising a VLD and a light diffractive optical (DOE)element (e.g. volume holographic optical element) forming an opticalassembly which is capable of generating and projecting a four (4) dotimage cropping pattern (ICP) within the field of view of the of theMulti-Mode Area-type Image Formation and Detection Subsystem, similar tothat generated using the refractive optics based device shown in FIG.36A;

FIG. 36 is a schematic representation of a digital image captured withinthe field of view (FOV) of the bar code symbol reader illustrated inFIGS. 31 and 32, wherein the clusters of pixels indicated by referencecharacters (a, b, c, d) represent the four illumination spots (i.e.dots) associated with the Image Cropping Pattern (ICP) projected in theFOV;

FIG. 37 is a flow chart setting forth the steps involved in carrying outthe second illustrative embodiment of the image cropping patterntargeting/marking and post-image capture cropping process of the presentinvention embodied in embodied within the bar code symbol readerillustrated in FIGS. 31 and 32;

FIG. 38 is a high-level flow chart illustrating the steps involvingcarrying out the method of the present invention, wherein the systembehavior (i.e. features) of the imaging-based bar code symbol readingsystem of the present invention can be modified by the end-user, withina set of manufacturer-defined constraints (i.e. imposed on modifiablefeatures and functions within features), by the end-user developing,installing/deploying and configuring “plug-in modules” (i.e. libraries)for any modifiable task within the application layer of the system, soas to allow the end user to flexible modify pre-specified features andfunctionalities of the system, and thus satisfy customized end-userapplication requirements, but without requiring detailed knowledge aboutthe hard-ware platform of the system, its communication with theenvironment, and/or its user interfaces.

FIG. 39 is an exemplary flow chart representation showing whatoperations are carried out when the “Modifiable” Main Task is (enabledand) executed within the Application Layer of the system;

FIG. 39A is an exemplary flow chart representation showing whatoperations are carried out when the system feature called “ImagePreprocessing” is executed within the Image-Processing Based Bar CodeSymbol Reading Subsystem software module in the Application Layer of thesystem;

FIG. 39B is an exemplary flow chart representation showing whatoperations are carried out when the system feature called “ImageProcessing and Bar Code Decoding” is executed within the Modifiable MainTask software module in the Application Layer of the system;

FIG. 39C is an exemplary flow chart representation showing whatoperations are carried out when the system feature called “Data OutputProcedure” is executed within the Modifiable Main Task in theApplication Layer of the system;

FIG. 39C1 is an exemplary flow chart representation showing whatoperations are carried out when the system feature called “DataFormatting Procedure” is executed within the Data Output Proceduresoftware module in the Application Layer of the system;

FIG. 39C2 is an exemplary flow chart representation showing whatoperations are carried out when the system feature called “ScannerConfiguration Procedure” is executed within the Data Output Proceduresoftware module in the Application Layer of the system;

FIG. 40 is a perspective view of the digital image capture andprocessing engine of the present invention, showing the projection of avisible illumination-based Image Cropping Pattern (ICP) within the fieldof view (FOV) of the engine, during object illumination and imagecapture operations;

FIGS. 41A and 41B are close-up, perspective views of the digital imagecapture and processing engine of the present invention depicted in FIG.40, showing the assembly of an illumination/targeting optics panel, anillumination board, a lens barrel assembly, a camera housing, and acamera board, into a an ultra-compact form factor offering advantages oflight-weight construction, excellent thermal management, and exceptionalimage capture performance;

FIG. 42 is a side perspective view of the digital image capture andprocessing engine of FIG. 40, showing how the various components arearranged with respect to each other;

FIG. 43 is an elevated front view of the digital image capture andprocessing engine of FIG. 40, taken along the optical axis of its imageformation optics;

FIG. 44 is a bottom view of the digital image capture and processingengine of FIG. 40, showing the bottom of its mounting base for use inmounting the engine within diverse host systems;

FIG. 45 is a top view of the digital image capture and processing engineof FIG. 40;

FIG. 46 is a first side view of the digital image capture and processingengine of FIG. 40;

FIG. 47 is a second partially cut-away side view of the digital imagecapture and processing engine taken in FIG. 46, revealing the lightconductive pipe used to collect and conduct light energy from the FOV ofthe Multi-Mode Area-Type Image Formation and Detection Subsystem, anddirect it to the photo-detector associated with the Automatic LightExposure Measurement and Illumination Control Subsystem;

FIG. 48 is a first cross-sectional view of the digital image capture andprocessing engine taken in FIG. 46, revealing the light conductive pipeused to collect and conduct light energy from the FOV of the Multi-ModeArea-Type Image Formation and Detection Subsystem;

FIG. 48A is a perspective view of the conductive light pipe employed inthe engine of FIG. 40;

FIG. 49A through 49E depict various views of the FOV optics assemblyemployed in the engine of FIG. 40;

FIG. 50 is an exploded, perspective view of the digital image captureand processing engine of FIG. 40, showing how the illumination/targetingoptics panel, the illumination board, the lens barrel assembly, thecamera housing, the camera board and its assembly pins are arranged andassembled with respect to each other in accordance with the principlesof the present invention;

FIG. 51 is a perspective view of the illumination/targeting opticspanel, the illumination board and the camera board of digital imagecapture and processing engine of FIG. 40, showing assembled with thelens barrel assembly and the camera housing removed for clarity ofillustration;

FIG. 52 is a perspective view of the illumination/targeting optics paneland the illumination board of the engine of the present inventionassembled together as a subassembly using the assembly pins;

FIG. 53 is a perspective view of the subassembly of FIG. 52 arranged inrelation to the lens barrel assembly, the camera housing and the cameraboard of the engine of the present invention, and showing how thesesystem components are assembled together to produce the digital imagecapture and processing engine of FIG. 40;

FIG. 54 is a schematic block diagram representative of a system designfor the digital image capture and processing engine illustrated in FIGS.40 through 53, wherein the system design is shown comprising (1) aMulti-Mode Area-Type Image Formation and Detection (i.e. Camera)Subsystem having image formation (camera) optics for producing a fieldof view (FOV) upon an object to be imaged and a CMOS or like area-typeimage sensing array for detecting imaged light reflected off the objectduring illumination operations in either (i) a narrow-area image capturemode in which a few central rows of pixels on the image sensing arrayare enabled, or (ii) a wide-area image capture mode in whichsubstantially all rows of the image sensing array are enabled, (2) aLED-Based Illumination Subsystem for producing a wide area field ofnarrow-band illumination within the FOV of the Image Formation AndDetection Subsystem during the image capture mode, so that only lighttransmitted from the LED-Based Illumination Subsystem and reflected fromthe illuminated object and transmitted through a narrow-bandtransmission-type optical filter realized within the hand-supportablehousing (i.e. using a red-wavelength high-pass reflecting window filterelement disposed at the light transmission aperture thereof and alow-pass filter before the image sensor) is detected by the image sensorand all other components of ambient light are substantially rejected,and an Image Cropping Pattern Generator for generating a visibleillumination-based Image Cropping Pattern (ICP) projected within thefield of view (FOV) of the Multi-Mode Area-type Image Formation andDetection Subsystem, (3) an IR-based object presence and range detectionsubsystem for producing an IR-based object detection field within theFOV of the Image Formation and Detection Subsystem, (4) an AutomaticLight Exposure Measurement and Illumination Control Subsystem formeasuring illumination levels in the FOV and controlling the operationof the LED-Based Multi-Mode Illumination Subsystem, during the imagecapture mode, (5) an Image Capturing and Buffering Subsystem forcapturing and buffering 2-D images detected by the Image Formation andDetection Subsystem, (6) an Image Processing and Cropped Image LocatingModule for processing captured and buffered images to locate the imageregion corresponding to the region defined by the Image Cropping Pattern(ICP), (7) an Image Perspective Correction and Scaling Module forcorrecting the perspective of the cropped image region and scaling thecorrected image to a predetermined (i.e. fixed) pixel image sizesuitable for decode-processing, (8) a Multimode Image-Processing BasedBar Code Symbol Reading Subsystem for processing cropped and scaledimages generated by the Image Perspective and Scaling Module and reading1D and 2D bar code symbols represented, and (9) an Input/OutputSubsystem for outputting processed image data and the like to anexternal host system or other information receiving or respondingdevice, in which each said subsystem component is integrated about (10)a System Control Subsystem, as shown;

FIG. 55A1 is a perspective view of an alternative illustrativeembodiment of the digital image capture and processing engine shown inFIGS. 40 through 53, adapted for POS applications and reconfigured sothat the illumination/aiming subassembly shown in FIG. 52 is mountedadjacent the light transmission window of the engine housing, whereasthe remaining subassembly is mounted relative to the bottom of theengine housing so that the optical axis of the camera lens is parallelwith the light transmission aperture, and a field of view (FOV) foldingmirror is mounted beneath the illumination/aiming subassembly fordirecting the FOV of the system out through the central aperture formedin the illumination/aiming subassembly;

FIG. 55A2 is a schematic block diagram representative of a system designfor the digital image capture and processing engine of the presentinvention shown in FIG. 55A1, wherein the system design is similar tothat shown in FIG. 2A1, except that the Automatic Light ExposureMeasurement and Illumination Control Subsystem is adapted to measure thelight exposure on a central portion of the CMOS image sensing array andcontrol the operation of the LED-Based Multi-Mode Illumination Subsystemin cooperation with a software-based illumination metering programrealized within the Multi-Mode Image Processing Based Bar Code SymbolReading Subsystem, involving the real-time exposure quality analysis ofcaptured digital images in accordance with the adaptive system controlmethod of the present invention, illustrated in FIGS. 27A through 27E;

FIG. 55B1 is a perspective view of an automatic imaging-based bar codesymbol reading system of the present invention supporting apresentation-type mode of operation using wide-area illumination andvideo image capture and processing techniques, and employing the generalengine design shown in FIG. 56A1;

FIG. 55B2 is a cross-sectional view of the system shown in FIG. 55B1;

FIG. 55B3 is a schematic block diagram representative of a system designfor the digital image capture and processing engine of the presentinvention shown in FIG. 55B1, wherein the system design is similar tothat shown in FIG. 2A1, except that the Automatic Light ExposureMeasurement and Illumination Control Subsystem is adapted to measure thelight exposure on a central portion of the CMOS image sensing array andcontrol the operation of the LED-Based Multi-Mode Illumination Subsystemin cooperation with a software-based illumination metering programrealized within the Multi-Mode Image Processing Based Bar Code SymbolReading Subsystem, performing the real-time exposure quality analysis ofcaptured digital images in accordance with the adaptive system controlmethod of the present invention, illustrated in FIGS. 27A through 27E;

FIG. 55C1 is a perspective view of an automatic imaging-based bar codesymbol reading system of the present invention supporting a pass-throughmode of operation using narrow-area illumination and video image captureand processing techniques, as well as a presentation-type mode ofoperation using wide-area illumination and video image capture andprocessing techniques

FIG. 55C2 is a schematic representation illustrating the system of FIG.55C1 operated in its Pass-Through Mode of system operation;

FIG. 55C3 is a schematic representation illustrating the system of FIG.55C1 operated in its Presentation Mode of system operation;

FIG. 55C4 is a schematic block diagram representative of a system designfor the digital image capture and processing engine of the presentinvention shown in FIGS. 55C1 and 55C2, wherein the system design issimilar to that shown in FIG. 2A1, except for the following differences:(1) the Automatic Light Exposure Measurement and Illumination ControlSubsystem is adapted to measure the light exposure on a central portionof the CMOS image sensing array and control the operation of theLED-Based Multi-Mode Illumination Subsystem in cooperation with theMulti-Mode Image Processing Based Bar Code Symbol Reading Subsystem,carrying out real-time quality analysis of captured digital images inaccordance with the adaptive system control method of the presentinvention, illustrated in FIGS. 27A through 27E; (2) the narrow-areafield of illumination and image capture is oriented in the verticaldirection with respect to the counter surface of the POS environment, tosupport the Pass-Through Mode of the system, as illustrated in FIG.55C2; and (3) the IR-based object presence and range detection systememployed in FIG. 55A2 is replaced with an automatic IR-based objectpresence and direction detection subsystem which comprises fourindependent IR-based object presence and direction detection channels;

FIG. 55C5 is a schematic block diagram of the automatic IR-based objectpresence and direction detection subsystem employed in the bar codereading system illustrated in FIGS. 55C1 and 55C4, showing fourindependent IR-based object presence and direction detection channelswhich automatically generate activation control signals for fourorthogonal directions within the FOV of the system, which are receivedand processed by a signal analyzer and control logic block;

FIG. 56A is a perspective view of a first illustrative embodiment of aprojection-type POS image-processing based bar code symbol readingsystem, employing the digital image capture and processing engineshowing in FIG. 55;

FIG. 56B is a perspective view of a second illustrative embodiment of aprojection-type POS image-processing based bar code symbol readingsystem, employing the digital image capture and processing engineshowing in FIG. 55;

FIG. 56C is a perspective view of a third illustrative embodiment of aprojection-type POS image-processing based bar code symbol readingsystem, employing the digital image capture and processing engineshowing in FIG. 55; and

FIG. 57 is a perspective view of a price lookup unit (PLU) systememploying a digital image capture and processing subsystem of thepresent invention identifying bar coded consumer products in retailstore environments, and displaying the price thereof on the LCD panelintegrated in the system.

DETAILED DESCRIPTION OF THE ILLUSTRATIVE EMBODIMENTS OF THE PRESENTINVENTION

Referring to the figures in the accompanying Drawings, the variousillustrative embodiments of the hand-supportable imaging-based bar codesymbol reading system of the present invention will be described ingreat detail, wherein like elements will be indicated using likereference numerals.

Hand-Supportable Digital-Imaging Based Bar Code Reading Device of theFirst Illustrative Embodiment of the Present Invention

Referring to FIGS. 1A through 1K, the hand-supportable digital-imagingbased bar code symbol reading device of the first illustrativeembodiment of the present invention 1 is shown in detail comprising ahand-supportable housing 2 having a handle portion 2A and a head portion2B that is provided with a light transmission window 3 with a high-pass(red-wavelength reflecting) optical filter element 4A having lighttransmission characteristics set forth in FIG. 5A2, in the illustrativeembodiment. As will be described in greater detail hereinafter,high-pass optical filter element 4A cooperates within an interiorlymounted low-pass optical filter element 4B characterized in FIG. 5A1,which cooperates with the high-pass optical filter element 4A. Thesehigh and low pass filter elements 4A and 4B cooperate to provide anarrow-band optical filter system 4 that integrates with the headportion of the housing and permits only a narrow band of illumination(e.g. 633 nanometers) to exit and enter the housing during imagingoperations.

As best shown in FIGS. 1I, 1J, and 1K, the hand-supportable housing 2 ofthe illustrative embodiment comprises: left and right housing handlehalves 2A1 and 2A2; a foot-like structure 2A3 which is mounted betweenthe handle halves 2A1 and 2A2; a trigger switch structure 2C which snapfits within and pivots within a pair of spaced apart apertures 2D1 and2D2 provided in the housing halves; a light transmission window panel 5through which light transmission window 3 is formed and supported withina recess formed by handle halves 2A1 and 2A2 when they are broughttogether, and which supports all LED illumination arrays provided by thesystem; an optical bench 6 for supporting electro-optical components andoperably connected an orthogonally-mounted PC board 7 which is mountedwithin the handle housing halves; a top housing portion 2B1 forconnection with the housing handle halves 2A1 and 2A2 and enclosing thehead portion of the housing; light pipe lens element 7 for mounting overan array of light emitting diodes (LEDs) 9 and light pipe structures 10mounted within the rear end of the head portion of the hand-supportablehousing; and a front bumper structure 2E for holding together the tophousing portion 2B1 and left and right handle halves 2A1 and 2A2 withthe light transmission window panel 5 sandwiched therebetween, whileproviding a level of shock protection thereto.

In other embodiments of the present invention shown in FIGS. 27 through33 the form factor of the hand-supportable housing might be different.In yet other applications, the housing need not even behand-supportable, but rather might be designed for stationary support ona desktop or countertop surface, or for use in a commercial orindustrial application.

Schematic Block Functional Diagram as System Design Model for theHand-Supportable Digital-Image Based Bar Code Reading Device of thePresent Invention

As shown in the system design model of FIG. 2A1, the hand-supportabledigital-imaging based bar code symbol reading device 1 of theillustrative embodiment comprises: an IR-based Object Presence and RangeDetection Subsystem 12; a Multi-Mode Area-type Image Formation andDetection (i.e. camera) Subsystem 13 having narrow-area mode of imagecapture, near-field wide-area mode of image capture, and a far-fieldwide-area mode of image capture; a Multi-Mode LED-Based IlluminationSubsystem 14 having narrow-area mode of illumination, near-fieldwide-area mode of illumination, and a far-field wide-area mode ofillumination; an Automatic Light Exposure Measurement and IlluminationControl Subsystem 15; an Image Capturing and Buffering Subsystem 16; aMulti-Mode Image-Processing Bar Code Symbol Reading Subsystem 17 havingfive modes of image-processing based bar code symbol reading indicatedin FIG. 2A2 and to be described in detail hereinabove; an Input/OutputSubsystem 18; a manually-actuatable trigger switch 2C for sendinguser-originated control activation signals to the device; a System ModeConfiguration Parameter Table 70; and a System Control Subsystem 18integrated with each of the above-described subsystems, as shown.

The primary function of the IR-based Object Presence and Range DetectionSubsystem 12 is to automatically produce an IR-based object detectionfield 20 within the FOV of the Multi-Mode Image Formation and DetectionSubsystem 13, detect the presence of an object within predeterminedregions of the object detection field (20A, 20B), and generate controlactivation signals A1 which are supplied to the System Control Subsystem19 for indicating when and where an object is detected within the objectdetection field of the system.

In the first illustrative embodiment, the Multi-Mode Image Formation AndDetection (I.E. Camera) Subsystem 13 has image formation (camera) optics21 for producing a field of view (FOV) 23 upon an object to be imagedand a CMOS area-image sensing array 22 for detecting imaged lightreflected off the object during illumination and imageacquisition/capture operations.

In the first illustrative embodiment, the primary function of theMulti-Mode LED-Based Illumination Subsystem 14 is to produce anarrow-area illumination field 24, near-field wide-area illuminationfield 25, and a far-field wide-area illumination field 25, each having anarrow optical-bandwidth and confined within the FOV of the Multi-ModeImage Formation And Detection Subsystem 13 during narrow-area andwide-area modes of imaging, respectively. This arrangement is designedto ensure that only light transmitted from the Multi-Mode IlluminationSubsystem 14 and reflected from the illuminated object is ultimatelytransmitted through a narrow-band transmission-type optical filtersubsystem 4 realized by (1) high-pass (i.e. red-wavelength reflecting)filter element 4A mounted at the light transmission aperture 3immediately in front of panel 5, and (2) low-pass filter element 4Bmounted either before the image sensing array 22 or anywhere after panel5 as shown in FIG. 3C. FIG. 5A4 sets forth the resulting compositetransmission characteristics of the narrow-band transmission spectralfilter subsystem 4, plotted against the spectral characteristics of theemission from the LED illumination arrays employed in the Multi-ModeIllumination Subsystem 14.

The primary function of the narrow-band integrated optical filtersubsystem 4 is to ensure that the CMOS image sensing array 22 onlyreceives the narrow-band visible illumination transmitted by the threesets of LED-based illumination arrays 27, 28 and 29 driven by LED drivercircuitry 30 associated with the Multi-Mode Illumination Subsystem 14,whereas all other components of ambient light collected by the lightcollection optics are substantially rejected at the image sensing array22, thereby providing improved SNR thereat, thus improving theperformance of the system.

The primary function of the Automatic Light Exposure Measurement andIllumination Control Subsystem 15 is to twofold: (1) to measure, inreal-time, the power density [joules/cm] of photonic energy (i.e. light)collected by the optics of the system at about its image sensing array22, and generate Auto-Exposure Control Signals indicating the amount ofexposure required for good image formation and detection; and (2) incombination with Illumination Array Selection Control Signal provided bythe System Control Subsystem 19, automatically drive and control theoutput power of selected LED arrays 27, 28 and/or 29 in the Multi-ModeIllumination Subsystem, so that objects within the FOV of the system areoptimally exposed to LED-based illumination and optimal images areformed and detected at the image sensing array 22.

The primary function of the Image Capturing and Buffering Subsystem 16is to (1) detect the entire 2-D image focused onto the 2D image sensingarray 22 by the image formation optics 21 of the system, (2) generate aframe of digital pixel data 31 for either a selected region of interestof the captured image frame, or for the entire detected image, and then(3) buffer each frame of image data as it is captured. Notably, in theillustrative embodiment, a single 2D image frame (31) is captured duringeach image capture and processing cycle, or during a particular stage ofa processing cycle, so as to eliminate the problems associated withimage frame overwriting, and synchronization of image capture anddecoding processes, as addressed in U.S. Pat. Nos. 5,932,862 and5,942,741 assigned to Welch Allyn, and incorporated herein by reference.

The primary function of the Multi-Mode Imaging-Based Bar Code SymbolReading Subsystem 17 is to process images that have been captured andbuffered by the Image Capturing and Buffering Subsystem 16, during bothnarrow-area and wide-area illumination modes of system operation. Suchimage processing operation includes image-based bar code decodingmethods illustrated in FIGS. 14 through 25, and described in detailhereinafter.

The primary function of the Input/Output Subsystem 18 is to supportstandard and/or proprietary communication interfaces with external hostsystems and devices, and output processed image data and the like tosuch external host systems or devices by way of such interfaces.Examples of such interfaces, and technology for implementing the same,are given in U.S. Pat. No. 6,619,549, incorporated herein by referencein its entirety.

The primary function of the System Control Subsystem 19 is to providesome predetermined degree of control or management signaling services toeach subsystem component integrated, as shown. While this subsystem canbe implemented by a programmed microprocessor, in the illustrativeembodiment, it is implemented by the three-tier software architecturesupported on computing platform shown in FIG. 2B, and as represented inFIGS. 11A through 13L, and described in detail hereinafter.

The primary function of the manually-activatable Trigger Switch 2Cintegrated with the hand-supportable housing is to enable the user togenerate a control activation signal upon manually depressing theTrigger Switch 2C, and to provide this control activation signal to theSystem Control Subsystem 19 for use in carrying out its complex systemand subsystem control operations, described in detail herein.

The primary function of the System Mode Configuration Parameter Table 70is to store (in non-volatile/persistent memory) a set of configurationparameters for each of the available Programmable Modes of SystemOperation specified in the Programmable Mode of Operation Table shown inFIGS. 26A and 26B, and which can be read and used by the System ControlSubsystem 19 as required during its complex operations.

The detailed structure and function of each subsystem will now bedescribed in detail above.

Schematic Diagram as System Implementation Model for theHand-Supportable Digital-Imaging Based Bar Code Reading Device of thePresent Invention

FIG. 2B shows a schematic diagram of a system implementation for thehand-supportable digital-imaging based bar code symbol reading device 1illustrated in FIGS. 1A through 1L. As shown in this systemimplementation, the bar code symbol reading device is realized using anumber of hardware component comprising: an illumination board 33carrying components realizing electronic functions performed by theLED-Based Multi-Mode Illumination Subsystem 14 and Automatic LightExposure Measurement And Illumination Control Subsystem 15; a CMOScamera board 34 carrying high resolution (1280×1024 7-bit 6 micron pixelsize) CMOS image sensing array 22 running at 25 Mhz master clock, at 7frames/second at 1280*1024 resolution with randomly accessible region ofinterest (ROI) window capabilities, realizing electronic functionsperformed by the Multi-Mode Image Formation and Detection Subsystem 13;a CPU board 35 (i.e. computing platform) including (i) an Intel Sabinal32-Bit Microprocessor PXA210 36 running at 200 mHz 1.0 core voltage witha 16 bit 100 Mhz external bus speed, (ii) an expandable (e.g. 7+megabyte) Intel J3 Asynchronous 16-bit Flash memory 37, (iii) an 16Megabytes of 100 MHz SDRAM 38, (iv) an Xilinx Spartan II FPGA FIFO 39running at 50 Mhz clock frequency and 60 MB/Sec data rate, configured tocontrol the camera timings and drive an image acquisition process, (v) amultimedia card socket 40, for realizing the other subsystems of thesystem, (vi) a power management module 41 for the MCU adjustable by theI2C bus, and (vii) a pair of UARTs 42A and 42B (one for an IRDA port andone for a JTAG port); an interface board 43 for realizing the functionsperformed by the I/O subsystem 18; and an IR-based object presence andrange detection circuit 44 for realizing Subsystem 12, which includes apair of IR LEDs and photodiodes 12A for transmitting and receiving apencil-shaped IR-based object-sensing signal.

In the illustrative embodiment, the image formation optics 21 supportedby the bar code reader provides a field of view of 103 mm at the nominalfocal distance to the target, of approximately 70 mm from the edge ofthe bar code reader. The minimal size of the field of view (FOV) is 62mm at the nominal focal distance to the target of approximately 10 mm.Preliminary tests of the parameters of the optics are shown on FIG. 4B(the distance on FIG. 4B is given from the position of the image sensingarray 22, which is located inside the bar code symbol readerapproximately 80 mm from the edge). As indicated in FIG. 4C, the depthof field of the image formation optics varies from approximately 69 mmfor the bar codes with resolution of 5 mils per narrow module, to 181 mmfor the bar codes with resolution of 13 mils per narrow module.

The Multi-Mode Illumination Subsystem 14 is designed to cover theoptical field of view (FOV) 23 of the bar code symbol reader withsufficient illumination to generate high-contrast images of bar codeslocated at both short and long distances from the imaging window. Theillumination subsystem also provides a narrow-area (thin height)targeting beam 24 having dual purposes: (a) to indicate to the userwhere the optical view of the reader is; and (b) to allow a quick scanof just a few lines of the image and attempt a super-fast bar codedecoding if the bar code is aligned properly. If the bar code is notaligned for a linearly illuminated image to decode, then the entirefield of view is illuminated with a wide-area illumination field 25 or26 and the image of the entire field of view is acquired by ImageCapture and Buffering Subsystem 16 and processed by Multi-Mode Bar CodeSymbol Reading Subsystem 17, to ensure reading of a bar code symbolpresented therein regardless of its orientation.

The interface board 43 employed within the bar code symbol readerprovides the hardware communication interfaces for the bar code symbolreader to communicate with the outside world. The interfaces implementedin system will typically include RS232, keyboard wedge, and/or USB, orsome combination of the above, as well as others required or demanded bythe particular application at hand.

Specification of the Area-Type Image Formation and Detection (i.e.Camera) Subsystem During its Narrow-Area (Linear) and Wide-Area Modes ofImaging, Supported by the Narrow and Wide Area Fields of Narrow-BandIllumination, Respectively

As shown in FIGS. 3B through 3E, the Multi-Mode Image Formation AndDetection (IFD) Subsystem 13 has a narrow-area image capture mode (i.e.where only a few central rows of pixels about the center of the imagesensing array are enabled) and a wide-area image capture mode ofoperation (i.e. where all pixels in the image sensing array areenabled). The CMOS image sensing array 22 in the Image Formation andDetection Subsystem 13 has image formation optics 21 which provides theimage sensing array with a field of view (FOV) 23 on objects to beilluminated and imaged. As shown, this FOV is illuminated by theMulti-Mode Illumination Subsystem 14 integrated within the bar codereader.

The Multi-Mode Illumination Subsystem 14 includes three differentLED-based illumination arrays 27, 28 and 29 mounted on the lighttransmission window panel 5, and arranged about the light transmissionwindow 4A. Each illumination array is designed to illuminate a differentportion of the FOV of the bar code reader during different modes ofoperation. During the narrow-area (linear) illumination mode of theMulti-Mode Illumination Subsystem 14, the central narrow-wide portion ofthe FOV indicated by 23 is illuminated by the narrow-area illuminationarray 27, shown in FIG. 3A. During the near-field wide-area illuminationmode of the Multi-Mode Illumination Subsystem 14, which is activated inresponse to the IR Object Presence and Range Detection Subsystem 12detecting an object within the near-field portion of the FOV, thenear-field wide-area portion of the FOV is illuminated by the near-fieldwide-area illumination array 28, shown in FIG. 3A. During the far-fieldwide-area illumination mode of the Multi-Mode Illumination Subsystem 14,which is activated in response to the IR Object Presence and RangeDetection Subsystem 12 detecting an object within the far-field portionof the FOV, the far-field wide-area portion of the FOV is illuminated bythe far-field wide-area illumination array 29, shown in FIG. 3A. In FIG.3A, the spatial relationships are shown between these fields ofnarrow-band illumination and the far and near field portions the FOV ofthe Image Formation and Detection Subsystem 13.

In FIG. 3B, the Multi-Mode LED-Based Illumination Subsystem 14 is showntransmitting visible narrow-band illumination through its narrow-bandtransmission-type optical filter subsystem 4, shown in FIG. 3C andintegrated within the hand-supportable Digital-imaging based Bar CodeSymbol Reading Device. The narrow-band illumination from the Multi-ModeIllumination Subsystem 14 illuminates an object with the FOV of theimage formation optics of the Image Formation and Detection Subsystem13, and light rays reflected and scattered therefrom are transmittedthrough the high-pass and low-pass optical filters 4A and 4B and areultimately focused onto image sensing array 22 to form of a focuseddetected image thereupon, while all other components of ambient lightare substantially rejected before reaching image detection at the imagesensing array 22. Notably, in the illustrative embodiment, thered-wavelength reflecting high-pass optical filter element 4A ispositioned at the imaging window of the device before the imageformation optics 21, whereas the low-pass optical filter element 4B isdisposed before the image sensing array 22 between the focusing lenselements of the image formation optics 21. This forms narrow-bandoptical filter subsystem 4 which is integrated within the bar codereader to ensure that the object within the FOV is imaged at the imagesensing array 22 using only spectral components within the narrow-bandof illumination produced from Subsystem 14, while rejectingsubstantially all other components of ambient light outside this narrowrange (e.g. 15 nm).

As shown in FIG. 3D, the Image Formation And Detection Subsystem 14employed within the hand-supportable image-based bar code reading devicecomprising three lenses 21A, 21B and 21C, each made as small as possible(with a maximum diameter of 12 mm), having spherical surfaces, and madefrom common glass, e.g. LAK2 (˜LaK9), ZF10 (=SF8), LAF2 (˜LaF3).Collectively, these lenses are held together within a lens holdingassembly 45, as shown in FIG. 3E, and form an image formation subsystemarranged along the optical axis of the CMOS image sensing array 22 ofthe bar code reader.

As shown in FIG. 3E, the lens holding assembly 45 comprises: a barrelstructure 45A1, 45A2 for holding lens elements 21A, 21B and 21C; and abase structure 45B for holding the image sensing array 22; wherein theassembly is configured so that the barrel structure 45A slides withinthe base structure 45B so as to focus the fixed-focus lens assemblyduring manufacture.

In FIGS. 3F1 and 3F2, the lens holding assembly 45 and imaging sensingarray 22 are mounted along an optical path defined along the centralaxis of the system. In the illustrative embodiment, the image sensingarray 22 has, for example, a 1280×1024 pixel resolution (½″ format), 6micron pixel size, with randomly accessible region of interest (ROI)window capabilities. It is understood, though, that many others kinds ofimaging sensing devices (e.g. CCD) can be used to practice theprinciples of the present invention disclosed herein, without departingfrom the scope or spirit of the present invention.

Details regarding a preferred Method of Designing the Image Formation(i.e. Camera) Optics Within the Image-Based Bar Code Reader Of ThePresent Invention Using The Modulation Transfer Function (MTF) aredescribed in Applicants' U.S. application Ser. No. 10/712,787 filed Nov.13, 2003, supra. Also,_Method Of Theoretically Characterizing The DOF OfThe Image Formation Optics Employed In The Imaging-Based Bar Code ReaderOf The Present Invention are also described in detail in Applicants'U.S. application Ser. No. 10/712,787 filed Nov. 13, 2003, supra.

Specification of Multi-Mode LED-Based Illumination Subsystem Employed inthe Hand-Supportable Image-Based Bar Code Reading System of the PresentInvention

In the illustrative embodiment, the LED-Based Multi-Mode IlluminationSubsystem 14 comprises: narrow-area illumination array 27; near-fieldwide-area illumination array 28; and far-field wide-area illuminationarray 29. The three fields of narrow-band illumination produced by thethree illumination arrays of subsystem 14 are schematically depicted inFIG. 4A1. As will be described hereinafter, with reference to FIGS. 27and 28, narrow-area illumination array 27 can be realized as twoindependently operable arrays, namely: a near-field narrow-areaillumination array and a far-field narrow-area illumination array, whichare activated when the target object is detected within the near and farfields, respectively, of the automatic IR-based Object Presence andRange Detection Subsystem 12 during wide-area imaging modes ofoperation. However, for purposes of illustration, the first illustrativeembodiment of the present invention employs only a single fieldnarrow-area (linear) illumination array which is designed to illuminateover substantially entire working range of the system, as shown in FIG.4A1.

As shown in FIGS. 4B, 4C3 and 4C4, the narrow-area (linear) illuminationarray 27 includes two pairs of LED light sources 27A1 and 27A2 providedwith cylindrical lenses 27B1 and 27B2, respectively, and mounted on leftand right portions of the light transmission window panel 5. During thenarrow-area image capture mode of the Image Formation and DetectionSubsystem 13, the narrow-area (linear) illumination array 27 producesnarrow-area illumination field 24 of narrow optical-bandwidth within theFOV of the system. In the illustrative embodiment, narrow-areaillumination field 24 has a height less than 10 mm at far field,creating the appearance of substantially linear or rather planarillumination field.

The near-field wide-area illumination array 28 includes two sets of(flattop) LED light sources 28A1-28A6 and 28A7-28A13 without any lensesmounted on the top and bottom portions of the light transmission windowpanel 5, as shown in FIG. 4B. During the near-field wide-area imagecapture mode of the Image Formation and Detection Subsystem 13, thenear-field wide-area illumination array 28 produces a near-fieldwide-area illumination field 25 of narrow optical-bandwidth within theFOV of the system.

As shown in FIGS. 4B, 4D3 and 4D4, the far-field wide-area illuminationarray 29 includes two sets of LED light sources 29A1-29A6 and 29A7-29A13provided with spherical (i.e. plano-convex) lenses 29B1-29B6 and29B7-29B13, respectively, and mounted on the top and bottom portions ofthe light transmission window panel 5. During the far-field wide-areaimage capture mode of the Image Formation and Detection Subsystem 13,the far-field wide-area illumination array 29 produces a far-fieldwide-area illumination beam of narrow optical-bandwidth within the FOVof the system.

Narrow-Area (Linear) Illumination Arrays Employed in the Multi-ModeIllumination Subsystem

As shown in FIG. 4A1, the narrow-area (linear) illumination field 24extends from about 30 mm to about 200 mm within the working range of thesystem, and covers both the near and far fields of the system. Thenear-field wide-area illumination field 25 extends from about 0 mm toabout 100 mm within the working range of the system. The far-fieldwide-area illumination field 26 extends from about 100 mm to about 200mm within the working range of the system. The Table shown in FIG. 4A2specifies the geometrical properties and characteristics of eachillumination mode supported by the Multi-Mode LED-based IlluminationSubsystem 14 of the present invention.

The narrow-area illumination array 27 employed in the Multi-ModeLED-Based Illumination Subsystem 14 is optically designed to illuminatea thin area at the center of the field of view (FOV) of theimaging-based bar code symbol reader, measured from the boundary of theleft side of the field of view to the boundary of its right side, asspecified in FIG. 4A1. As will be described in greater detailhereinafter, the narrow-area illumination field 24 is automaticallygenerated by the Multi-Mode LED-Based Illumination Subsystem 14 inresponse to the detection of an object within the object detection fieldof the automatic IR-based Object Presence and Range Detection Subsystem12. In general, the object detection field of the IR-based ObjectPresence and Range Detection Subsystem 12 and the FOV of the ImageFormation and Detection Subsystem 13 are spatially co-extensive and theobject detection field spatially overlaps the FOV along the entireworking distance of the imaging-based bar code symbol reader. Thenarrow-area illumination field 24, produced in response to the detectionof an object, serves a dual purpose: it provides a visual indication toan operator about the location of the optical field of view of the barcode symbol reader, thus, serves as a field of view aiming instrument;and during its image acquisition mode, the narrow-area illumination beamis used to illuminated a thin area of the FOV within which an objectresides, and a narrow 2-D image of the object can be rapidly captured(by a small number of rows of pixels in the image sensing array 22),buffered and processed in order to read any linear bar code symbols thatmay be represented therewithin.

FIG. 4C1 shows the Lambertian emittance versus wavelengthcharacteristics of the LEDs used to implement the narrow-areaillumination array 27 in the Multi-Mode Illumination Subsystem 14. FIG.4C2 shows the Lambertian emittance versus polar angle characteristics ofthe same LEDs. FIG. 4C3 shows the cylindrical lenses used before theLEDs (633 nm InGaAlP) in the narrow-area (linear) illumination arrays inthe illumination subsystem of the present invention. As shown, the firstsurface of the cylindrical lens is curved vertically to create anarrow-area (linear) illumination pattern, and the second surface of thecylindrical lens is curved horizontally to control the height of the ofthe linear illumination pattern to produce a narrow-area illuminationpattern. FIG. 4C4 shows the layout of the pairs of LEDs and twocylindrical lenses used to implement the narrow-area illumination arrayof the illumination subsystem of the present invention. In theillustrative embodiment, each LED produces about a total output power ofabout 11.7 mW under typical conditions. FIG. 4C5 sets forth a set of sixillumination profiles for the narrow-area illumination fields producedby the narrow-area illumination arrays of the illustrative embodiment,taken at 30, 40, 50, 80, 120, and 220 millimeters along the field awayfrom the imaging window (i.e. working distance) of the bar code readerof the present invention, illustrating that the spatial intensity of thearea-area illumination field begins to become substantially uniform atabout 80 millimeters. As shown, the narrow-area illumination beam isusable beginning 40 mm from the light transmission/imaging window.

Near-Field Wide-Area Illumination Arrays Employed in the Multi-ModeIllumination Subsystem

The near-field wide-area illumination array 28 employed in the LED-BasedMulti-Mode Illumination Subsystem 14 is optically designed to illuminatea wide area over a near-field portion of the field of view (FOV) of theimaging-based bar code symbol reader, as defined in FIG. 4A1. As will bedescribed in greater detail hereinafter, the near-field wide-areaillumination field 28 is automatically generated by the LED-basedMulti-Mode Illumination Subsystem 14 in response to: (1) the detectionof any object within the near-field of the system by the IR-based ObjectPresence and Range Detection Subsystem 12; and (2) one or more offollowing events, including, for example: (i) failure of the imageprocessor to successfully decode process a linear bar code symbol duringthe narrow-area illumination mode; (ii) detection of code elements suchas control words associated with a 2-D bar code symbol; and/or (iii)detection of pixel data in the image which indicates that object wascaptured in a state of focus.

In general, the object detection field of the IR-based Object Presenceand Range Detection Subsystem 12 and the FOV of the Image Formation AndDetection Subsystem 13 are spatially co-extensive and the objectdetection field spatially overlaps the FOV along the entire workingdistance of the imaging-based bar code symbol reader. The near-fieldwide-area illumination field 23, produced in response to one or more ofthe events described above, illuminates a wide area over a near-fieldportion of the field of view (FOV) of the imaging-based bar code symbolreader, as defined in FIG. 5A, within which an object resides, and a 2-Dimage of the object can be rapidly captured by all rows of the imagesensing array 22, buffered and decode-processed in order to read any 1Dor 2-D bar code symbols that may be represented therewithin, at anyorientation, and of virtually any bar code symbology. The intensity ofthe near-field wide-area illumination field during object illuminationand image capture operations is determined by how the LEDs associatedwith the near-field wide array illumination arrays 28 are electricallydriven by the Multi-Mode Illumination Subsystem 14. The degree to whichthe LEDs are driven is determined by the intensity of reflected lightmeasured near the image formation plane by the automatic light exposureand control subsystem 15. If the intensity of reflected light at thephotodetector of the Automatic Light Exposure Measurement andIllumination Control Subsystem 15 is weak, indicative that the objectexhibits low light reflectivity characteristics and a more intenseamount of illumination will need to be produced by the LEDs to ensuresufficient light exposure on the image sensing array 22, then theAutomatic Light Exposure Measurement and Illumination Control Subsystem15 will drive the LEDs more intensely (i.e. at higher operatingcurrents).

FIG. 4D1 shows the Lambertian emittance versus wavelengthcharacteristics of the LEDs used to implement the wide area illuminationarrays in the illumination subsystem of the present invention. FIG. 4D2shows the Lambertian emittance versus polar angle characteristics of theLEDs used to implement the near field wide-area illumination arrays inthe Multi-Mode Illumination Subsystem 14. FIG. 4D4 is geometrical thelayout of LEDs used to implement the narrow wide-area illumination arrayof the Multi-Mode Illumination Subsystem 14, wherein the illuminationbeam produced therefrom is aimed by angling the lenses before the LEDsin the near-field wide-area illumination arrays of the Multi-ModeIllumination Subsystem 14. FIG. 4D5 sets forth a set of six illuminationprofiles for the near-field wide-area illumination fields produced bythe near-field wide-area illumination arrays of the illustrativeembodiment, taken at 10, 20, 30, 40, 60, and 100 millimeters along thefield away from the imaging window (i.e. working distance) of theimaging-based bar code symbol reader 1. These plots illustrate that thespatial intensity of the near-field wide-area illumination field beginsto become substantially uniform at about 40 millimeters (i.e.center:edge=2:1 max).

Far-Field Wide-Area Illumination Arrays Employed in the Multi-ModeIllumination Subsystem

The far-field wide-area illumination array 26 employed in the Multi-ModeLED-based Illumination Subsystem 14 is optically designed to illuminatea wide area over a far-field portion of the field of view (FOV) of theimaging-based bar code symbol reader, as defined in FIG. 4A1. As will bedescribed in greater detail hereinafter, the far-field wide-areaillumination field 26 is automatically generated by the LED-BasedMulti-Mode Illumination Subsystem 14 in response to: (1) the detectionof any object within the near-field of the system by the IR-based ObjectPresence and Range Detection Subsystem 12; and (2) one or more offollowing events, including, for example: (i) failure of the imageprocessor to successfully decode process a linear bar code symbol duringthe narrow-area illumination mode; (ii) detection of code elements suchas control words associated with a 2-D bar code symbol; and/or (iii)detection of pixel data in the image which indicates that object wascaptured in a state of focus. In general, the object detection field ofthe IR-based Object Presence and Range Detection Subsystem 12 and theFOV 23 of the image detection and formation subsystem 13 are spatiallyco-extensive and the object detection field 20 spatially overlaps theFOV 23 along the entire working distance of the imaging-based bar codesymbol reader. The far-field wide-area illumination field 26, producedin response to one or more of the events described above, illuminates awide area over a far-field portion of the field of view (FOV) of theimaging-based bar code symbol reader, as defined in FIG. 5A, withinwhich an object resides, and a 2-D image of the object can be rapidlycaptured (by all rows of the image sensing array 22), buffered andprocessed in order to read any 1D or 2-D bar code symbols that may berepresented therewithin, at any orientation, and of virtually any barcode symbology. The intensity of the far-field wide-area illuminationfield during object illumination and image capture operations isdetermined by how the LEDs associated with the far-field wide-areaillumination array 29 are electrically driven by the Multi-ModeIllumination Subsystem 14. The degree to which the LEDs are driven (i.e.measured in terms of junction current) is determined by the intensity ofreflected light measured near the image formation plane by the AutomaticLight Exposure Measurement And Illumination Control Subsystem 15. If theintensity of reflected light at the photo-detector of the AutomaticLight Exposure Measurement and Illumination Control Subsystem 15 isweak, indicative that the object exhibits low light reflectivitycharacteristics and a more intense amount of illumination will need tobe produced b the LEDs to ensure sufficient light exposure on the imagesensing array 22, then the Automatic Light Exposure Measurement andIllumination Control Subsystem 15 will drive the LEDs more intensely(i.e. at higher operating currents).

During both near and far field wide-area illumination modes ofoperation, the Automatic Light Exposure Measurement and IlluminationControl Subsystem (i.e. module) 15 measures and controls the timeduration which the Multi-Mode Illumination Subsystem 14 exposes theimage sensing array 22 to narrow-band illumination (e.g. 633 nanometers,with approximately 15 nm bandwidth) during the imagecapturing/acquisition process, and automatically terminates thegeneration of such illumination when such computed time durationexpires. In accordance with the principles of the present invention,this global exposure control process ensures that each and everyacquired image has good contrast and is not saturated, two conditionsessential for consistent and reliable bar code reading

FIG. 4D1 shows the Lambertian emittance versus wavelengthcharacteristics of the LEDs used to implement the far-field wide-areaillumination arrays 29 in the Multi-Mode Illumination Subsystem 14. FIG.4D2 shows the Lambertian emittance versus polar angle characteristics ofthe LEDs used to implement the same. FIG. 4D3 shows the plano-convexlenses used before the LEDs in the far-field wide-area illuminationarrays in the Multi-Mode Illumination Subsystem 14. FIG. 4D4 shows alayout of LEDs and piano-convex lenses used to implement the farwide-area illumination array 29 of the illumination subsystem, whereinthe illumination beam produced therefrom is aimed by angling the lensesbefore the LEDs in the far-field wide-area illumination arrays of theMulti-Mode Illumination Subsystem 14. FIG. 4D6 sets forth a set of threeillumination profiles for the far-field wide-area illumination fieldsproduced by the far-field wide-area illumination arrays of theillustrative embodiment, taken at 100, 150 and 220 millimeters along thefield away from the imaging window (i.e. working distance) of theimaging-based bar code symbol reader 1, illustrating that the spatialintensity of the far-field wide-area illumination field begins to becomesubstantially uniform at about 100 millimeters. FIG. 4D7 shows a tableillustrating a preferred method of calculating the pixel intensity valuefor the center of the far field wide-area illumination field producedfrom the Multi-Mode Illumination Subsystem 14, showing a significantsignal strength (greater than 80 DN at the far center field).

Specification of the Narrow-Band Optical Filter Subsystem Integratedwithin the Hand-Supportable Housing of the Imager of the PresentInvention

As shown in FIG. 5A1, the hand-supportable housing of the bar codereader of the present invention has integrated within its housing,narrow-band optical filter subsystem 4 for transmitting substantiallyonly the very narrow band of wavelengths (e.g. 620-700 nanometers) ofvisible illumination produced from the narrow-band Multi-ModeIllumination Subsystem 14, and rejecting all other optical wavelengthsoutside this narrow optical band however generated (i.e. ambient lightsources). As shown, narrow-band optical filter subsystem 4 comprises:red-wavelength reflecting (high-pass) imaging window filter 4Aintegrated within its light transmission aperture 3 formed on the frontface of the hand-supportable housing; and low pass optical filter 4Bdisposed before the CMOS image sensing array 22. These optical filters4A and 4B cooperate to form the narrow-band optical filter subsystem 4for the purpose described above. As shown in FIG. 5A2, the lighttransmission characteristics (energy versus wavelength) associated withthe low-pass optical filter element 4B indicate that optical wavelengthsbelow 620 nanometers are transmitted therethrough, whereas opticalwavelengths above 620 nm are substantially blocked (e.g. absorbed orreflected). As shown in FIG. 5A3, the light transmission characteristics(energy versus wavelength) associated with the high-pass imaging windowfilter 4A indicate that optical wavelengths above 700 nanometers aretransmitted therethrough, thereby producing a red-color appearance tothe user, whereas optical wavelengths below 700 nm are substantiallyblocked (e.g. absorbed or reflected) by optical filter 4A.

During system operation, spectral band-pass filter subsystem 4 greatlyreduces the influence of the ambient light, which falls upon the CMOSimage sensing array 22 during the image capturing operations. By virtueof the optical filter of the present invention, a optical shuttermechanism is eliminated in the system. In practice, the optical filtercan reject more than 85% of incident ambient light, and in typicalenvironments, the intensity of LED illumination is significantly morethan the ambient light on the CMOS image sensing array 22. Thus, whilean optical shutter is required in nearly most conventional CMOS imagingsystems, the imaging-based bar code reading system of the presentinvention effectively manages the exposure time of narrow-bandillumination onto its CMOS image sensing array 22 by simply controllingthe illumination time of its LED-based illumination arrays 27, 28 and 29using control signals generated by Automatic Light Exposure Measurementand Illumination Control Subsystem 15 and the CMOS image sensing array22 while controlling illumination thereto by way of the band-passoptical filter subsystem 4 described above. The result is a simplesystem design, without moving parts, and having a reduced manufacturingcost.

While the band-pass optical filter subsystem 4 is shown comprising ahigh-pass filter element 4A and low-pass filter element 4B, separatedspatially from each other by other optical components along the opticalpath of the system, subsystem 4 may be realized as an integratedmulti-layer filter structure installed in front of the image formationand detection (IFD) module 13, or before its image sensing array 22,without the use of the high-pass window filter 4A, or with the usethereof so as to obscure viewing within the imaging-based bar codesymbol reader while creating an attractive red-colored protectivewindow. Preferably, the red-color window filter 4A will havesubstantially planar surface characteristics to avoid focusing ordefocusing of light transmitted therethrough during imaging operations.

Specification of the Automatic Light Exposure Measurement andIllumination Control Subsystem of the Present Invention

The primary function of the Automatic Light Exposure Measurement andIllumination Control Subsystem 15 is to control the brightness andcontrast of acquired images by (i) measuring light exposure at the imageplane of the CMOS imaging sensing array 22 and (ii) controlling the timeduration that the Multi-Mode Illumination Subsystem 14 illuminates thetarget object with narrow-band illumination generated from the activatedLED illumination array. Thus, the Automatic Light Exposure Measurementand Illumination Control Subsystem 15 eliminates the need for a complexshuttering mechanism for CMOS-based image sensing array 22. This novelmechanism ensures that the imaging-based bar code symbol reader of thepresent invention generates non-saturated images with enough brightnessand contrast to guarantee fast and reliable image-based bar codedecoding in demanding end-user applications.

During object illumination, narrow-band LED-based light is reflectedfrom the target object (at which the hand-supportable bar code reader isaimed) and is accumulated by the CMOS image sensing array 22. Notably,the object illumination process must be carried out for an optimalduration so that the acquired image frame has good contrast and is notsaturated. Such conditions are required for the consistent and reliablebar code decoding operation and performance. The Automatic LightExposure Measurement and Illumination Control Subsystem 15 measures theamount of light reflected from the target object, calculates the maximumtime that the CMOS image sensing array 22 should be kept exposed to theactively-driven LED-based illumination array associated with theMulti-Mode Illumination Subsystem 14, and then automatically deactivatesthe illumination array when the calculated time to do so expires (i.e.lapses).

As shown in FIG. 6A of the illustrative embodiment, the Automatic LightExposure Measurement and Illumination Control Subsystem 15 comprises: aparabolic light-collecting mirror 55 mounted within the head portion ofthe hand-supportable housing, for collecting narrow-band LED-based lightreflected from a central portion of the FOV of the system, which is thentransmitted through the narrow-band optical filter subsystem 4eliminating wide band spectral interference; a light-sensing device(e.g. photo-diode) 56 mounted at the focal point of the light collectionmirror 55, for detecting the filtered narrow-band optical signal focusedtherein by the light collecting mirror 55; and an electronic circuitry57 for processing electrical signals produced by the photo-diode 56indicative of the intensity of detected light exposure levels within thefocal plane of the CMOS image sensing array 22. During light exposuremeasurement operations, incident narrow-band LED-based illumination isgathered from the center of the FOV of the system by the spherical lightcollecting mirror 55 and narrow-band filtered by the narrow-band opticalfilter subsystem 4 before being focused upon the photodiode 56 forintensity detection. The photo-diode 56 converts the detected lightsignal into an electrical signal having an amplitude which directlycorresponds to the intensity of the collected light signal.

As shown in FIG. 6B, the System Control Subsystem 19 generates anillumination array selection control signal which determines which LEDillumination array (i.e. the narrow-area illumination array 27 or thefar-field and narrow-field wide-area illumination arrays 28 or 29) willbe selectively driven at any instant in time of system operation by LEDArray Driver Circuitry 64 in the Automatic Light Exposure Measurementand Illumination Control Subsystem 15. As shown, electronic circuitry 57processes the electrical signal from photo-detector 56 and generates anauto exposure control signal for the selected LED illumination array. Interm, this auto exposure control signal is provided to the LED arraydriver circuitry 64, along with an illumination array selection controlsignal from the System Control Subsystem 19, for selecting and driving(i.e. energizing) one or more LED illumination array(s) so as togenerate visible illumination at a suitable intensity level and forsuitable time duration so that the CMOS image sensing array 22automatically detects digital high-resolution images of illuminatedobjects, with sufficient contrast and brightness, while achieving globalexposure control objectives of the present invention disclosed herein.As shown in FIGS. 6B and 7C, the illumination array selection controlsignal is generated by the System Control Subsystem 19 in response to(i) reading the system mode configuration parameters from the systemmode configuration parameter table 70, shown in FIG. 2A1, for theprogrammed mode of system operation at hand, and (ii) detecting theoutput from the automatic IR-based Object Presence and Range DetectionSubsystem 12.

Notably, in the illustrative embodiment, there are three possibleLED-based illumination arrays 27, 28 and 29 which can be selected foractivation by the System Control Subsystem 19, and the upper and/orlower LED subarrays in illumination arrays 28 and 29 can be selectivelyactivated or deactivated on a subarray-by-subarray basis, for variouspurposes taught herein, including automatic specular reflection noisereduction during wide-area image capture modes of operation.

Each one of these illumination arrays can be driven to different statesdepending on the auto-exposure control signal generated by electronicsignal processing circuit 57, which will be generally a function ofobject distance, object surface reflectivity and the ambient lightconditions sensed at photo-detector 56, and measured by signalprocessing circuit 57. The operation of signal processing circuitry 57will now be detailed below.

As shown in FIG. 6B, the narrow-band filtered optical signal that isproduced by the parabolic light focusing mirror 55 is focused onto thephoto-detector D156 which generates an analog electrical signal whoseamplitude corresponds to the intensity of the detected optical signal.This analog electrical signal is supplied to the signal processingcircuit 57 for various stages of processing. The first step ofprocessing involves converting the analog electrical signal from acurrent-based signal to a voltage-based signal which is achieved bypassing it through a constant-current source buffer circuit 58, realizedby one half of transistor Q1 (58). This inverted voltage signal is thenbuffered by the second half of the transistor Q1 (58) and is supplied asa first input to a summing junction 59. As shown in FIG. 7C, the CMOSimage sensing array 22 produces, as output, a digital electronic rollingshutter (ERS) pulse signal 60, wherein the duration of this ERS pulsesignal 60 is fixed to a maximum exposure time allowed in the system. TheERS pulse signal 60 is buffered through transistor Q2 61 and forms theother side of the summing junction 59. The outputs from transistors Q1and Q2 form an input to the summing junction 59. A capacitor C5 isprovided on the output of the summing junction 59 and provides a minimumintegration time sufficient to reduce any voltage overshoot in thesignal processing circuit 57. The output signal across the capacitor C5is further processed by a comparator U1 62. In the illustrativeembodiment, the comparator reference voltage signal is set to 1.7 volts.This reference voltage signal sets the minimum threshold level for thelight exposure measurement circuit 57. The output signal from thecomparator 62 is inverted by inverter U3 63 to provide a positive logicpulse signal which is supplied, as auto exposure control signal, to theinput of the LED array driver circuit 64 shown in FIG. 7C.

As will be explained in greater detail below, the LED array drivercircuit 64 shown in FIG. 7C automatically drives an activated LEDilluminated array, and the operation of LED array driver circuit 64depends on the mode of operation in which the Multi-Mode IlluminationSubsystem 14 is configured. In turn, the mode of operation in which theMulti-Mode Illumination Subsystem 14 is configured at any moment in timewill typically depend on (i) the state of operation of the ObjectPresence and Range Detection Subsystem 12 and (ii) the programmed modeof operation in which the entire Imaging-Based Bar Code Symbol ReadingSystem is configured using system mode configuration parameters readfrom Table 70 shown in FIG. 2A1.

As shown in FIG. 7C, the LED array driver circuit 64 comprises analogand digital circuitry which receives two input signals: (i) the autoexposure control signal from signal processing circuit 57; and (ii) theillumination array selection control signal. The LED array drivercircuit 64 generates, as output, digital pulse-width modulated (PCM)drive signals provided to either the narrow-area illumination array 27,the upper and/or lower LED subarray employed in the near-field wide-areaillumination array 28, and/or the upper and/or lower LED subarraysemployed in the far-field wide-area illumination array 29. Depending onwhich mode of system operation the imaging-based bar code symbol readerhas been configured, the LED array driver circuit 64 will drive one ormore of the above-described LED illumination arrays during objectillumination and imaging operations. As will be described in greaterdetail below, when all rows of pixels in the CMOS image sensing array 22are in a state of integration (and thus have a common integration time),such LED illumination array(s) are automatically driven by the LED arraydriver circuit 64 at an intensity and for duration computed (in ananalog manner) by the Automatic Light Exposure and Illumination ControlSubsystem 15 so as to capture digital images having good contrast andbrightness, independent of the light intensity of the ambientenvironment and the relative motion of target object with respect to theimaging-based bar code symbol reader.

Global Exposure Control Method of the Present Invention Carried OutUsing the CMOS Image Sensing Array

In the illustrative embodiment, the CMOS image sensing array 22 isoperated in its Single Frame Shutter Mode (i.e. rather than itsContinuous Frame Shutter Mode) as shown in FIG. 6D, and employs a novelexposure control method which ensure that all rows of pixels in the CMOSimage sensing array 22 have a common integration time, thereby capturinghigh quality images even when the object is in a state of high speedmotion. This novel exposure control technique shall be referred to as“the global exposure control method” of the present invention, and theflow chart of FIGS. 6E1 and 6E2 describes clearly and in great detailhow this method is implemented in the imaging-based bar code symbolreader of the illustrative embodiment. The global exposure controlmethod will now be described in detail below.

As indicated at Block A in FIG. 6E1, Step A in the global exposurecontrol method involves selecting the single frame shutter mode ofoperation for the CMOS imaging sensing array provided within animaging-based bar code symbol reading system employing an automaticlight exposure measurement and illumination control subsystem, amulti-mode illumination subsystem, and a system control subsystemintegrated therewith, and image formation optics providing the CMOSimage sensing array with a field of view into a region of space whereobjects to be imaged are presented.

As indicated in Block B in FIG. 6E1, Step B in the global exposurecontrol method involves using the automatic light exposure measurementand illumination control subsystem to continuously collect illuminationfrom a portion of the field of view, detect the intensity of thecollected illumination, and generate an electrical analog signalcorresponding to the detected intensity, for processing.

As indicated in Block C in FIG. 6E1, Step C in the global exposurecontrol method involves activating (e.g. by way of the system controlsubsystem 19 or directly by way of trigger switch 2C) the CMOS imagesensing array so that its rows of pixels begin to integrate photonicallygenerated electrical charge in response to the formation of an imageonto the CMOS image sensing array by the image formation optics of thesystem.

As indicated in Block D in FIG. 6E1, Step D in the global exposurecontrol method involves the CMOS image sensing array 22 automatically(i) generating an electronic rolling shutter (ERS) digital pulse signalwhen all rows of pixels in the image sensing array are operated in astate of integration, and providing this ERS pulse signal to theAutomatic Light Exposure Measurement And Illumination Control Subsystem15 so as to activate light exposure measurement and illumination controlfunctions/operations therewithin.

As indicated in Block E in FIG. 6E2, Step E in the global exposurecontrol method involves, upon activation of light exposure measurementand illumination control functions within Subsystem 15, (i) processingthe electrical analog signal being continuously generated therewithin,(ii) measuring the light exposure level within a central portion of thefield of view 23 (determined by light collecting optics 55 shown in FIG.6A), and (iii) generating an auto-exposure control signal forcontrolling the generation of visible field of illumination from atleast one LED-based illumination array (27, 28 and/or 29) in theMulti-Mode Illumination Subsystem 14 which is selected by anillumination array selection control signal produced by the SystemControl Subsystem 19.

Finally, as indicated at Block F in FIG. 6E2, Step F in the globalexposure control method involves using (i) the auto exposure controlsignal and (ii) the illumination array selection control signal to drivethe selected LED-based illumination array(s) and illuminate the field ofview of the CMOS image sensing array 22 in whatever image capture modeit may be configured, precisely when all rows of pixels in the CMOSimage sensing array are in a state of integration, as illustrated inFIG. 6D, thereby ensuring that all rows of pixels in the CMOS imagesensing array have a common integration time. By enabling all rows ofpixels in the CMOS image sensing array 22 to have a common integrationtime, high-speed “global exposure control” is effectively achievedwithin the imaging-based bar code symbol reader of the presentinvention, and consequently, high quality images are capturedindependent of the relative motion between the bar code symbol readerand the target object.

Specification of the IR-Based Automatic Object Presence and RangeDetection Subsystem Employed in the Hand-Supportable Digital Image-BasedBar Code Reading Device of the Present Invention

As shown in FIG. 8A, IR-wavelength based Automatic Object Presence andRange Detection Subsystem 12 is realized in the form of a compact opticsmodule 76 mounted on the front portion of optics bench 6, as shown inFIG. 1J.

As shown in FIG. 7, the object presence and range detection module 12 ofthe illustrative embodiment comprises a number of subcomponents, namely:an optical bench 77 having an ultra-small footprint for supportingoptical and electro-optical components used to implement the subsystem12; at least one IR laser diode 78 mounted on the optical bench 77, forproducing a low power IR laser beam 79; IR beam shaping optics 80,supported on the optical bench for shaping the IR laser beam (e.g. intoa pencil-beam like geometry) and directing the same into the centralportion of the object detection field 20 defined by the field of view(FOV) of IR light collection/focusing optics 81 supported on the opticalbench 77; an amplitude modulation (AM) circuit 82 supported on theoptical bench 77, for modulating the amplitude of the IR laser beamproduced from the IR laser diode at a frequency ƒ_(o) (e.g. 75 Mhz) withup to 7.5 milliwatts of optical power; optical detector (e.g. anavalanche-type IR photo-detector) 83, mounted at the focal point of theIR light collection/focusing optics 81, for receiving the IR opticalsignal reflected off an object within the object detection field, andconverting the received optical signal 84 into an electrical signal 85;an amplifier and filter circuit 86, mounted on the optical bench 77, forisolating the ƒ₀ signal component and amplifying it; a limitingamplifier 87, mounted on the optical bench, for maintaining a stablesignal level; a phase detector 88, mounted on the optical bench 77, formixing the reference signal component ƒ₀ from the AM circuit 82 and thereceived signal component ƒ₀ reflected from the packages and producing aresulting signal which is equal to a DC voltage proportional to theCosine of the phase difference between the reference and the reflectedƒ₀ signals; an amplifier circuit 89, mounted on the optical bench 77,for amplifying the phase difference signal; a received signal strengthindicator (RSSI) 90, mounted on the optical bench 77, for producing avoltage proportional to a LOG of the signal reflected from the targetobject which can be used to provide additional information; areflectance level threshold analog multiplexer 91 for rejectinginformation from the weak signals; and a 12 bit A/D converter 92,mounted on the optical bench 77, for converting the DC voltage signalfrom the RSSI circuit 90 into sequence of time-based range data elements{R_(n,i)}, taken along nT discrete instances in time, where each rangedata element R_(n,i) provides a measure of the distance of the objectreferenced from (i) the IR laser diode 78 to (ii) a point on the surfaceof the object within the object detection field 20; and range analysiscircuitry 93 described below.

In general, the function of range analysis circuitry 93 is to analyzethe digital range data from the A/D converter 90 and generate twocontrol activation signals, namely: (i) “an object presence detection”type of control activation signal A_(1A) indicating simply whether anobject is presence or absent from the object detection field, regardlessof the mode of operation in which the Multi-Mode Illumination Subsystem14 might be configured; and (ii) “a near-field/far-field” rangeindication type of control activation signal A_(1B) indicating whether adetected object is located in either the predefined near-field orfar-field portions of the object detection field, which correspond tothe near-field and far-field portions of the FOV of the Multi-Mode ImageFormation and Detection Subsystem 13.

Various kinds of analog and digital circuitry can be designed toimplement the IR-based Automatic Object Presence and Range DetectionSubsystem 12. Alternatively, this subsystem can be realized usingvarious kinds of range detection techniques as taught in U.S. Pat. No.6,637,659, incorporated herein by reference in its entirely.

In the illustrative embodiment, Automatic Object Presence and RangeDetection Subsystem 12 operates as follows. In System Modes of Operationrequiring automatic object presence and/or range detection, AutomaticObject Presence and Range Detection Subsystem 12 will be activated atsystem start-up and operational at all times of system operation,typically continuously providing the System Control Subsystem 19 withinformation about the state of objects within both the far and nearportions of the object detection field 20 of the imaging-based symbolreader. In general, this Subsystem detects two basic states of presenceand range, and therefore has two basic states of operation. In its firststate of operation, the IR-based automatic Object Presence and RangeDetection Subsystem 12 automatically detects an object within thenear-field region of the FOV 20, and in response thereto generates afirst control activation signal which is supplied to the System ControlSubsystem 19 to indicate the occurrence of this first fact. In itssecond state of operation, the IR-based automatic Object Presence andRange Detection Subsystem 12 automatically detects an object within thefar-field region of the FOV 20, and in response thereto generates asecond control activation signal which is supplied to the System ControlSubsystem 19 to indicate the occurrence of this second fact. As will bedescribed in greater detail and throughout this Pat. specification,these control activation signals are used by the System ControlSubsystem 19 during particular stages of the system control process,such as determining (i) whether to activate either the near-field and/orfar-field LED illumination arrays, and (ii) how strongly should theseLED illumination arrays be driven to ensure quality image exposure atthe CMOS image sensing array 22.

Specification of the Mapping of Pixel Data Captured by the Imaging Arrayinto the SDRAM Under the Control of the Direct Memory Access (DMA)Module within the Microprocessor

As shown in FIG. 8, the CMOS image sensing array 22 employed in thedigital-imaging based bar code symbol reading device hereof is operablyconnected to its microprocessor 36 through FIFO 39 (realized by way of aFPGA) and system bus shown in FIG. 2B. As shown, SDRAM 38 is alsooperably connected to the microprocessor 36 by way of the system bus,thereby enabling the mapping of pixel data captured by the CMOS imagesensing array 22 into the SDRAM 38 under the control of the directmemory access (DMA) module within the microprocessor 36.

Referring to FIG. 9, details will now be given on how the bytes of pixeldata captured by CMOS image sensing array 22 are automatically mapped(i.e. captured and stored) into the addressable memory storage locationsof its SDRAM 38 during each image capture cycle carried out within thehand-supportable imaging-based bar code reading device of the presentinvention.

In the implementation of the illustrative embodiment, the CMOS imagesensing array 22 sends 7-bit gray-scale data bytes over a parallel dataconnection to FPGA 39 which implements a FIFO using its internal SRAM.The FIFO 39 stores the pixel data temporarily and the microprocessor 36initiates a DMA transfer from the FIFO (which is mapped to addressOXOCOOOOOO, chip select 3) to the SDRAM 38. In general, modernmicroprocessors have internal DMA modules, and a preferredmicroprocessor design, the DMA module will contain a 32-byte buffer.Without consuming any CPU cycles, the DMA module can be programmed toread data from the FIFO 39, store read data bytes in the DMA's buffer,and subsequently write the data to the SDRAM 38. Alternatively, a DMAmodule can reside in FPGA 39 to directly write the FIFO data into theSDRAM 38. This is done by sending a bus request signal to themicroprocessor 36, so that the microprocessor 36 releases control of thebus to the FPGA 39 which then takes over the bus and writes data intothe SDRAM 38.

Below, a brief description will be given on where pixel data output fromthe CMOS image sensing array 22 is stored in the SDRAM 38, and how themicroprocessor (i.e. implementing a decode algorithm) 36 accesses suchstored pixel data bytes. FIG. 9F represents the memory space of theSDRAM 38. A reserved memory space of 1.3 MB is used to store the outputof the CMOS image sensing array 22. This memory space is a 1:1 mappingof the pixel data from the CMOS image sensing array 22. Each byterepresents a pixel in the image sensing array 22. Memory space is amirror image of the pixel data from the image sensing array 22. Thus,when the decode program (36) accesses the memory, it is as if it isaccessing the raw pixel image of the image sensing array 22. No timecode is needed to track the data since the modes of operation of the barcode reader guarantee that the microprocessor 36 is always accessing theup-to-date data, and the pixel data sets are a true representation ofthe last optical exposure. To prevent data corruption, i.e. new datacoming in while old data are still being processed, the reserved spaceis protected by disabling further DMA access once a whole frame of pixeldata is written into memory. The DMA module is re-enabled until eitherthe microprocessor 36 has finished going through its memory, or atimeout has occurred.

During image acquisition operations, the image pixels are sequentiallyread out of the image sensing array 22. Although one may choose to readand column-wise or row-wise for some CMOS image sensors, without loss ofgenerality, the row-by-row read out of the data is preferred. The pixelimage data set is arranged in the SDRAM 38 sequentially, starting ataddress OXAOEC0000. To randomly access any pixel in the SDRAM 38 is astraightforward matter: the pixel at row y ¼ column x located is ataddress (OXAOEC0000+y×1280+x).

As each image frame always has a frame start signal out of the imagesensing array 22, that signal can be used to start the DMA process ataddress OXAOEC0000, and the address is continuously incremented for therest of the frame. But the reading of each image frame is started ataddress OXAOEC0000 to avoid any misalignment of data. Notably, however,if the microprocessor 36 has programmed the CMOS image sensing array 22to have a ROI window, then the starting address will be modified to(OXAOEC0000+1280×R₁), where R₁ is the row number of the top left cornerof the ROI.

Specification of the Three-Tier Software Architecture of theHand-Supportable Digital Image-Based Bar Code Reading Device of thePresent Invention

As shown in FIG. 10, the hand-supportable digital-imaging based bar codesymbol reading device of the present invention 1 is provided with athree-tier software architecture comprising the following softwaremodules: (1) the Main Task module, the CodeGate Task module, theMetroset Task module, the Application Events Manager module, the UserCommands Table module, the Command Handler module, the Plug-InController (Manager) and Plug-In Libraries and Configuration Files, eachresiding within the Application layer of the software architecture; (2)the Tasks Manager module, the Events Dispatcher module, the Input/OutputManager module, the User Commands Manager module, the Timer Subsystemmodule, the Input/Output Subsystem module and the Memory ControlSubsystem module, each residing within the System Core (SCORE) layer ofthe software architecture; and (3) the Linux Kernal module, the LinuxFile System module, and Device Drivers modules, each residing within theLinux Operating System (OS) layer of the software architecture.

While the operating system layer of the imaging-based bar code symbolreader is based upon the Linux operating system, it is understood thatother operating systems can be used (e.g. Microsoft Windows, Max OXS,Unix, etc), and that the design preferably provides for independencebetween the main Application Software Layer and the Operating SystemLayer, and therefore, enables of the Application Software Layer to bepotentially transported to other platforms. Moreover, the system designprinciples of the present invention provides an extensibility of thesystem to other future products with extensive usage of the commonsoftware components, which should make the design of such productseasier, decrease their development time, and ensure their robustness.

In the illustrative embodiment, the above features are achieved throughthe implementation of an event-driven multi-tasking, potentiallymulti-user, Application layer running on top of the System Core softwarelayer, called SCORE. The SCORE layer is statically linked with theproduct Application software, and therefore, runs in the ApplicationLevel or layer of the system. The SCORE layer provides a set of servicesto the Application in such a way that the Application would not need toknow the details of the underlying operating system, although alloperating system APIs are, of course, available to the application aswell. The SCORE software layer provides a real-time, event-driven,OS-independent framework for the product Application to operate. Theevent-driven architecture is achieved by creating a means for detectingevents (usually, but not necessarily, when the hardware interruptsoccur) and posting the events to the Application for processing inreal-time manner. The event detection and posting is provided by theSCORE software layer. The SCORE layer also provides the productApplication with a means for starting and canceling the software tasks,which can be running concurrently, hence, the multi-tasking nature ofthe software system of the present invention.

Specification of Software Modules within the SCORE Layer of the SystemSoftware Architecture Employed in Imaging-Based Bar Code Reader of thePresent Invention

The SCORE layer provides a number of services to the Application layer.

The Tasks Manager provides a means for executing and canceling specificapplication tasks (threads) at any time during the product Applicationrun.

The Events Dispatcher provides a means for signaling and delivering allkinds of internal and external synchronous and asynchronous events

When events occur, synchronously or asynchronously to the Application,the Events Dispatcher dispatches them to the Application Events Manager,which acts on the events accordingly as required by the Applicationbased on its current state. For example, based on the particular eventand current state of the application, the Application Events Manager candecide to start a new task, or stop currently running task, or dosomething else, or do nothing and completely ignore the event.

The Input/Output Manager provides a means for monitoring activities ofinput/output devices and signaling appropriate events to the Applicationwhen such activities are detected.

The Input/Output Manager software module runs in the background andmonitors activities of external devices and user connections, andsignals appropriate events to the Application Layer, which suchactivities are detected. The Input/Output Manager is a high-prioritythread that runs in parallel with the Application and reacts to theinput/output signals coming asynchronously from the hardware devices,such as serial port, user trigger switch 2C, bar code reader, networkconnections, etc. Based on these signals and optional input/outputrequests (or lack thereof) from the Application, it generatesappropriate system events, which are delivered through the EventsDispatcher to the Application Events Manager as quickly as possible asdescribed above.

The User Commands Manager provides a means for managing user commands,and utilizes the User Commands Table provided by the Application, andexecutes appropriate User Command Handler based on the data entered bythe user.

The Input/Output Subsystem software module provides a means for creatingand deleting input/output connections and communicating with externalsystems and devices

The Timer Subsystem provides a means of creating, deleting, andutilizing all kinds of logical timers.

The Memory Control Subsystem provides an interface for managing themulti-level dynamic memory with the device, fully compatible withstandard dynamic memory management functions, as well as a means forbuffering collected data. The Memory Control Subsystem provides a meansfor thread-level management of dynamic memory. The interfaces of theMemory Control Subsystem are fully compatible with standard C memorymanagement functions. The system software architecture is designed toprovide connectivity of the device to potentially multiple users, whichmay have different levels of authority to operate with the device.

The User Commands Manager, which provides a standard way of enteringuser commands, and executing application modules responsible forhandling the same. Each user command described in the User CommandsTable is a task that can be launched by the User Commands Manager peruser input, but only if the particular user's authority matches thecommand's level of security.

The Events Dispatcher software module provides a means of signaling anddelivering events to the Application Events Manager, including thestarting of a new task, stopping a currently running task, or doingsomething or nothing and simply ignoring the event.

FIG. 12B provides a Table listing examples of System-Defined Eventswhich can occur and be dispatched within the hand-supportabledigital-imaging based bar code symbol reading device of the presentinvention, namely: SCORE_EVENT_POWER_UP which signals the completion ofsystem start-up and involves no parameters; _SCORE_EVENT_TIMEOUT whichsignals the timeout of the logical timer, and involves the parameter“pointer to timer id”; SCORE_EVENT_UNEXPECTED_INPUT which signals thatthe unexpected input data is available and involves the parameter“pointer to connection id”; SCORE_EVENT_TRIG_ON which signals that theuser pulled the trigger and involves no parameters; SCORE_EVENT_TRIG_OFFwhich signals that the user released the trigger and involves noparameters; SCORE_EVENT_OBJECT_DETECT_ON which signals that the objectis positioned under the bar code reader and involves no parameters;SCORE_EVENT_OBJECT_DETECT_OFF which signals that the object is removedfrom the field of view of the bar code reader and involves noparameters; SCORE_EVENT_EXIT_TASK which signals the end of the taskexecution and involves the pointer UTID; and SCORE_EVENT_ABORT_TASKwhich signals the aborting of a task during execution.

The imaging-based bar code symbol reading device of the presentinvention provides the user with a command-line interface (CLI), whichcan work over the standard communication lines, such as RS232, availablein the bar code reader. The CLI is used mostly for diagnostic purposes,but can also be used for configuration purposes in addition to theMetroSet® and MetroSelect® programming functionalities. To send commandsto the bar code reader utilizing the CLI, a user must first enter theUser Command Manager by typing in a special character, which couldactually be a combination of multiple and simultaneous keystrokes, suchCtrl and S for example. Any standard and widely available softwarecommunication tool, such as Windows HyperTerminal, can be used tocommunicate with the bar code reader. The bar code reader acknowledgesthe readiness to accept commands by sending the prompt, such as “MTLG>”back to the user. The user can now type in any valid Applicationcommand. To quit the User Command Manager and return the scanner back toits normal operation, a user must enter another special character, whichcould actually be a combination of multiple and simultaneous keystrokes,such Ctrl and R for example.

An example of the valid command could be the “Save Image” command, whichis used to upload an image from the bar code reader's memory to the hostPC. This command has the following CLI format:

save [filename[compr]] where

(1) save is the command name.

(2) filename is the name of the file the image gets saved in. Ifomitted, the default filename is “image.bmp”.

(3) compr is the compression number, from 0 to 10. If omitted, thedefault compression number is 0, meaning no compression. The highercompression number, the higher image compression ratio, the faster imagetransmission, but more distorted the image gets.

The imaging-based bar code symbol reader of the present invention canhave numerous commands. All commands are described in a single table(User Commands Table shown in FIG. 10) contained in the productApplications software layer. For each valid command, the appropriaterecord in the table contains the command name, a short description ofthe command, the command type, and the address of the function thatimplements the command.

When a user enters a command, the User Command Manager looks for thecommand in the table. If found, it executes the function the address ofwhich is provided in the record for the entered command. Upon returnfrom the function, the User Command Manager sends the prompt to the userindicating that the command has been completed and the User CommandManager is ready to accept a new command.

Specification of Software Modules within the Application Layer of theSystem Software Architecture Employed in Imaging-Based Bar Code Readerof the Present Invention

The image processing software employed within the system hereof performsits bar code reading function by locating and recognizing the bar codeswithin the frame of a captured image comprising pixel data. The modulardesign of the image processing software provides a rich set of imageprocessing functions, which could be utilized in the future for otherpotential applications, related or not related to bar code symbolreading, such as: optical character recognition (OCR) and verification(OCV); reading and verifying directly marked symbols on varioussurfaces; facial recognition and other biometrics identification; etc.

The CodeGate Task, in an infinite loop, performs the following task. Itilluminates a “thin” narrow horizontal area at the center of thefield-of-view (FOV) and acquires a digital image of that area. It thenattempts to read bar code symbols represented in the captured frame ofimage data using the image processing software facilities supported bythe Image-Processing Bar Code Symbol Reading Subsystem 17 of the presentinvention to be described in greater detail hereinafter. If a bar codesymbol is successfully read, then Subsystem 17 saves the decoded data inthe special Decode Data Buffer. Otherwise, it clears the Decode DataBuffer. Then, it continues the loop. The CodeGate Task routine neverexits on its own. It can be canceled by other modules in the system whenreacting to other events. For example, when a user pulls the triggerswitch 2C, the event TRIGGER_ON is posted to the application. TheApplication software responsible for processing this event, checks ifthe CodeGate Task is running, and if so, it cancels it and then startsthe Main Task. The CodeGate Task can also be canceled uponOBJECT_DETECT_OFF event, posted when the user moves the bar code readeraway from the object, or when the user moves the object away from thebar code reader. The CodeGate Task routine is enabled (with Main Task)when “semi-automatic-triggered” system modes of programmed operation(Modes of System Operation Nos. 11-14 in FIG. 17AFIG. 17A) are to beimplemented on the illumination and imaging platform of the presentinvention.

The Narrow-Area Illumination Task illustrated in FIG. 13M is a simpleroutine which is enabled (with Main Task) when “manually-triggered”system modes of programmed operation (Modes of System Operation Nos. 1-5in FIG. 17AFIG. 17A) are to be implemented on the illumination andimaging platform of the present invention. However, this routine isnever enabled simultaneously with CodeGate Task. As shown in the eventflow chart of FIG. 13D, either CodeGate Task or Narrow-Area IlluminationTask are enabled with the Main Task routine to realize the diverse kindsof system operation described herein.

Depending the System Mode in which the imaging-based bar code symbolreader is configured, Main Task will typically perform differently, butwithin the limits described in FIG. 13J. For example, when theimaging-based bar code symbol reader is configured in the ProgrammableMode of System Operation No. 12 (i.e. Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Single-Read Mode) to be described in greaterdetail hereinafter, the Main Task first checks if the Decode Data Buffercontains data decoded by the CodeGate Task. If so, then it immediatelysends the data out to the user by executing the Data Output procedureand exits. Otherwise, in a loop, the Main Task does the following: itilluminates an entire area of the field-of-view and acquires afull-frame image of that area. It attempts to read a bar code symbol thecaptured image. If it successfully reads a bar code symbol, then itimmediately sends the data out to the user by executing the Data Outputprocedure and exits. Otherwise, it continues the loop. Notably, uponsuccessful read and prior to executing the Data Output procedure, theMain Task analyzes the decoded data for a “reader programming” commandor a sequence of commands. If necessary, it executes the MetroSelectfunctionality. The Main Task can be canceled by other modules within thesystem when reacting to other events. For example, the bar code readerof the present invention can be re-configured using standard Metrologicconfiguration methods, such as MetroSelect® and MetroSet®. TheMetroSelect functionality is executed during the Main Task.

The MetroSet functionality is executed by the special MetroSet Task.When the Focus RS232 software driver detects a special NULL-signal onits communication lines, it posts the METROSET_ON event to theApplication. The Application software responsible for processing thisevent starts the MetroSet task. Once the MetroSet Task is completed, thescanner returns to its normal operation.

The function of the Plug-In Controller (i.e. Manager) is to readconfiguration files and find plug-in libraries within the Plug-In andConfiguration File Library, and install plug-in into the memory of theoperating system, which returns back an address to the Plug-In Managerindicating where the plug-in has been installed, for future access. Aswill be described in greater detail hereinafter, the Plug-In DevelopmentPlatform support development of plug-ins that enhance, extend and/ormodify the features and functionalities of the image-processing basedbar code symbol reading system, and once developed, to upload developedplug-ins within the file system of the operating system layer, whilestoring the addresses of such plug-ins within the Plug-In andConfiguration File Library in the Application Layer.

Modes of System Operation Nos. 6-10 in FIG. 17A can be readilyimplemented on the illumination and imaging platform of the presentinvention by making the following software system modifications: (1) anAuto-Read Task routine would be added to the system routine library(wherein Auto-Read Task could be an infinite loop routine where theprimary operations of CodeGate Task and Main Task are sequenced togetherto attempt first automatic narrow-area illumination and image captureand processing, followed by automatic wide-area illumination and imagecapture and processing, and repeating the wide-area operation in aninfinite loop, until the object is no longer detected within aparticular predetermined time period; and (2) modifying the query block“Is CodeGate Task or Narrow-Area Illumination Task Enabled?” in theObject_Detect_On event handling routine shown in FIG. 13D, to furtherask whether the “Auto-Read Task Routine is enabled”, and on the “Yes”control path, providing a block which starts “Auto-Read Task” and thenadvancing control to Return.

Operating System Layer Software Modules within the Application Layer ofthe System Software Architecture Employed in Imaging-Based Bar CodeReader of the Present Invention

The Devices Drivers software modules, which includes trigger drivers,provide a means for establishing a software connection with thehardware-based manually-actuated trigger switch 2C employed on theimaging-based device, an image acquisition driver for implementing imageacquisition functionality aboard the imaging-based device, and an IRdriver for implementing object detection functionality aboard theimaging-based device.

As shown in FIG. 12I, the Device Drive software modules include: triggerdrivers for establishing a software connection with the hardware-basedmanually-actuated trigger switch 2C employed on the imaging-based barcode symbol reader of the present invention; an image acquisition driverfor implementing image acquisition functionality aboard theimaging-based bar code symbol reader; and an IR driver for implementingobject detection functionality aboard the imaging-based bar code symbolreader.

Basic System Operations Supported by the Three-Tier SoftwareArchitecture of the Hand-Supportable Digital-Imaging Based Bar CodeReading Device of the Present Invention

In FIGS. 13A through 13L, the basic systems operations supported by thethree-tier software architecture of the digital-imaging based bar codesymbol reader of the present invention are schematically depicted.Notably, these basic operations represent functional modules (orbuilding blocks) with the system architecture of the present invention,which can be combined in various combinations to implement the numerousProgrammable Modes of System Operation listed in FIG. 23 and describedin detail below, using the image acquisition and processing platformdisclosed herein. For purposes of illustration, and the avoidance ofobfuscation of the present invention, these basic system operations willbe described below with reference to Programmable Mode of SystemOperation No. 12: Semi-Automatic-Triggered Multiple-Attempt 1D/2DSingle-Read Mode Employing The No-Finder Mode And The Manual OrAutomatic Modes Of the Multi-Mode Bar Code Reading Subsystem 17.

FIG. 13A shows the basic operations carried out within the System CoreLayer of the system when the user points the bar code reader towards abar code symbol on an object. Such operations include the by IR devicedrivers enabling automatic detection of the object within the field, andwaking up of the Input/Output Manager software module. As shown in FIG.13B, the Input/Output Manager then posts the SCORE_OBJECT_DETECT_ONevent to the Events Dispatcher software module in response to detectingan object. Then as shown in FIG. 13C, the Events Dispatcher softwaremodule passes the SCORE_OBJECT_DETECT_ON event to the Application Layer.

Upon receiving the SCORE_OBJECT_DETECT_ON event at the ApplicationLayer, the Application Events Manager executes an event handling routine(shown in FIG. 13D) which activates the narrow-area (linear)illumination array 27 (i.e. during narrow-area illumination and imagecapture modes), and then depending on whether the presentation mode hasbeen selected and whether CodeGate Task or Narrow-Area Illumination Modehas been enabled during system configuration, this even handling routineexecutes either Main Task described in FIG. 13J, CodeGate Task describedin FIG. 13E, or Narrow-Area Illumination Task described in 13M. As shownin the flow chart of FIG. 13D, the system event handling routine firstinvolves determining whether the Presentation Mode has been selected(i.e. enabled), then the event handling routine determines whether theCodeGate Task or Narrow-Area Illumination Routines have been enabled(with Main Task). If CodeGate Task has been enabled, then ApplicationLayer starts CodeGate Task. If the Narrow-Area Illumination Task hasbeen enabled, then the Application Layer starts the Narrow-AreaIllumination Task, as shown.

As shown in FIG. 13E, the Application Layer executes the CodeGate Taskby first activating the narrow-area image capture mode in the Multi-ModeImage Formation and Detection Subsystem 13 (i.e. by enabling a fewmiddle rows of pixels in the CMOS sensor array 22), and thenacquiring/capturing a narrow image at the center of the FOV of the BarCode Reader. CodeGate Task then performs image processing operations onthe captured narrow-area image using No-Finder Module which has beenenabled by the selected Programmable Mode of System Operation No. 12. Ifthe image processing method results in a successful read of a bar codesymbol, then the Codegate Task saves the decoded symbol character datain the Codegate Data Buffer; and if not, then the task clears theCodegate Data Buffer, and then returns to the main block of the Taskwhere image acquisition reoccurs.

As shown in FIG. 13F, when the user pulls the trigger switch 2C on thebar code reader while the Code Task is executing, the trigger switchdriver in the OS Layer automatically wakes up the Input/Output Managerat the System Core Layer. As shown in FIG. 13G, the Input/OutputManager, in response to being woken up by the trigger device driver,posts the SCORE_TRIGGER_ON event to the Events Dispatcher also in theSystem Core Layer. As shown in FIG. 13H, the Events Dispatcher thenpasses on the SCORE_TRIGGER_ON event to the Application Events Managerat the Application Layer. As shown in FIGS. 13I1 and 13I2, theApplication Events Manager responds to the SCORE_TRIGGER_ON event byinvoking a handling routine (Trigger On Event) within the Task Managerat the System Core Layer.

As shown the flow chart of FIGS. 13I1 and 13I2, the routine determineswhether the Presentation Mode (i.e. Programmed Mode of System OperationNo. 10) has been enabled, and if so, then the routine exits. If theroutine determines that the Presentation Mode (i.e. Programmed Mode ofSystem Operation No. 10) has not been enabled, then it determineswhether the CodeGate Task is running, and if it is running, then itfirst cancels the CodeGate Task and then deactivates the narrow-areaillumination array 27 associated with the Multi-Mode IlluminationSubsystem 14, and thereafter executes the Main Task. If however theroutine determines that the CodeGate Task is not running, then itdetermines whether Narrow-Area Illumination Task is running, and if itis not running, then Main Task is started. However, if Narrow-AreaIllumination Task is running, then the routine increases thenarrow-illumination beam to full power and acquires a narrow-area imageat the center of the field of view of the system, then attempts to readthe bar code in the captured narrow-area image. If the read attempt issuccessful, then the decoded (symbol character) data is saved in theDecode Data Buffer, the Narrow-Area Illumination Task is canceled, thenarrow-area illumination beam is stopped, and the routine starts theMain Task, as shown. If the read attempt is unsuccessful, then theroutine clears the Decode Data Buffer, the Narrow-Area Illumination Taskis canceled, the narrow-area illumination beam is stopped, and theroutine starts the Main Task, as shown.

As shown in FIG. 13M, the Narrow-Area Task routine is an infinite looproutine that simply keeps a narrow-area illumination beam produced anddirected at the center of the field of view of the system in a recursivemanner (e.g. typically at half or less power in comparison with thefull-power narrow-area illumination beam produced during the running ofCodeGate Task).

As shown in FIG. 13J, the first step performed in the Main Task by theApplication Layer is to determine whether CodeGate Data is currentlyavailable (i.e. stored in the Decode Data Buffer), and if such data isavailable, then the Main Task directly executes the Data OutputProcedure described in FIG. 13K. However, if the Main Task determinesthat no such data is currently available, then it starts the ReadTimeOut Timer, and then acquires a wide-area image of the detectedobject, within the time frame permitted by the Read Timeout Timer.Notably, this wide-area image acquisition process involves carrying outthe following operations, namely: (i) first activating the wide-areaillumination mode in the Multi-Mode Illumination Subsystem 14 and thewide-area capture mode in the CMOS image formation and detection module;(ii) determining whether the object resides in the near-field orfar-field portion of the FOV (through object range measurement by theIR-based Object Presence and Range Detection Subsystem 12); and (iii)then activating either the near or far field wide-area illuminationarray to illuminate either the object in either the near or far fieldportions of the FOV using either the near-field illumination array 28 orthe far-field illumination array 29 (or possibly both 28 and 29 inspecial programmed cases) at an intensity and duration determined by theautomatic light exposure measurement and control subsystem 15; while(iv) sensing the spatial intensity of light imaged onto the CMOS imagesensing array 22 in accordance with the Global Exposure Control Methodof the present invention, described in detail hereinabove. Then the MainTask performs image processing operations on the captured image usingeither the Manual, ROI-Specific or Automatic Modes of operation(although it is understood that other image-processing based readingmethods taught herein, such as Automatic or OmniScan (as well we othersuitable alternative decoding algorithms/processes not disclosedherein), can be used depending on which Programmed Mode of SystemOperation has been selected by the end user for the imaging-based barcode symbol reader of the present invention. Notably, in theillustrative embodiment shown in FIG. 13J, the time duration of eachimage acquisition/processing frame is set by the Start Read TimeoutTimer and Stop Read Timeout Timer blocks shown therein, and that withinthe Programmed Mode of System Operation No. 12, the Main Task willsupport repeated (i.e. multiple) attempts to read a single bar codesymbol so long as the trigger switch 2C is manually depressed by theoperator and a single bar code has not yet been read. Then uponsuccessfully reading a (single) bar code symbol, the Main Task will thenexecute the Data Output Procedure. Notably, in other Programmed Modes ofSystem Operation, in which a single attempt at reading a bar code symbolis enabled, the Main Task will be modified accordingly to support suchsystem behavior. In such a case, an alternatively named Main Task (e.g.Main Task No. 2) would be executed to enable the required systembehavior during run-time.

It should also be pointed out at this juncture, that it is possible toenable and utilize several of different kinds of symbol reading methodsduring the Main Task, and to apply particular reading methods based onthe computational results obtained while processing the narrow-areaimage during the CodeGate Task, and/or while preprocessing of thecaptured wide-area image during one of the image acquiring/processingframes or cycles running in the Main Task. The main point to be madehere is that the selection and application of image-processing based barcode reading methods will preferably occur through the selectiveactivation of the different modes available within the multi-modeimage-processing based bar code symbol reading Subsystem 17, in responseto information learned about the graphical intelligence representedwithin the structure of the captured image, and that such dynamic shouldoccur in accordance with principles of dynamic adaptive learningcommonly used in advanced image processing systems, speech understandingsystems, and alike. This general approach is in marked contrast with theapproaches used in prior art imaging-based bar code symbol readers,wherein permitted methods of bar code reading are pre-selected based onstatically defined modes selected by the end user, and not in responseto detected conditions discovered in captured images on a real-timebasis.

As shown in FIG. 13K, the first step carried out by the Data OutputProcedure, called in the Main Task, involves determining whether thesymbol character data generated by the Main Task is for programming thebar code reader or not. If the data is not for programming the bar codesymbol reader, then the Data Output Procedure sends the data outaccording to the bar code reader system configuration, and thengenerates the appropriate visual and audio indication to the operator,and then exits the procedure. If the data is for programming the barcode symbol reader, then the Data Output Procedure sets the appropriateelements of the bar code reader configuration (file) structure, and thensaves the Bar Code Reader Configuration Parameters in non-volatile RAM(i.e. NOVRAM). The Data Output Procedure then reconfigures the bar codesymbol reader and then generates the appropriate visual and audioindication to the operator, and then exits the procedure. As shown inFIG. 13L, decoded data is sent from the Input/Output Module at theSystem Core Layer to the Device Drivers within the Linux OS Layer of thesystem.

Wide-Area Illumination Control Method for Use During the Main TaskSystem Control Routine so as to Illuminate Objects with Wide-AreaIllumination in a Manner which Substantially Reduces Specular-TypeReflection at the CMOS Image Sensing Array of the Bar Code Symbol Reader

Referring to FIGS. 13N1 through 13N3, the method of illuminating objectswithout specular reflection, according to the present invention, willnow be described in detail. This control routine can be called duringthe acquisition of wide-area image step in the Main Task routine, shownin FIG. 13J.

As indicated at Step A in FIG. 13N1, the first step of the illuminationcontrol method involves using the Automatic Light Exposure MeasurementAnd Illumination Control Subsystem 15 to measure the ambient light levelto which the CMOS image sensing array 22 is exposed prior to commencingeach illumination and imaging cycle within the Bar Code Symbol ReadingSystem.

As indicated at Step B, the illumination control method involves usingthe Automatic IR-based Object Presence and Range Detection Subsystem 12to measure the presence and range of the object in either the near orfar field portion of the field of view (FOV) of the System.

As indicated at Step C, the illumination control method involves usingthe detected range and the measured light exposure level to drive boththe upper and lower LED illumination subarrays associated with eitherthe near-field wide-area illumination array 28 or far-field wide-areaillumination array 29.

As indicated at Step D, the illumination control method involvescapturing a wide-area image at the CMOS image sensing array 22 using theillumination field produced during Step C.

As indicated at Step E, the illumination control method involves rapidlyprocessing the captured wide-area image during Step D to detect theoccurrence of high spatial-intensity levels in the captured wide-areaimage, indicative of a specular reflection condition.

As indicated at Step F, the illumination control method involvesdetermining if a specular reflection condition is detected in theprocessed wide-area image, and if so then driving only the upper LEDillumination subarray associated with either the near-field or far-fieldwide-area illumination array. Also, if a specular reflection conditionis not detected in the processed wide-area image, then the detectedrange and the measured light exposure level is used to drive both theupper and lower LED subarrays associated with either the near-field orfar-field wide-area illumination array.

As indicated at Step G, the illumination control method involvescapturing a wide-area image at the CMOS image sensing array 22 using theillumination field produced during Step F.

As indicated at Step H, the illumination control method involves rapidlyprocessing the captured wide-area image during Step G to detect theoccurrence of high spatial-intensity levels in the captured wide-areaimage, indicative of a specular reflection condition.

As indicated at Step I, the illumination control method involvesdetermining if a specular reflection condition is still detected in theprocessed wide-area image, and if so, then drive the other LED subarrayassociated with either the near-field or far-field wide-areaillumination array. If a specular reflection condition is not detectedin the processed wide-area image, then the detected Range and themeasured Light Exposure Level is used to drive the same LED illuminationsubarray (as in Step C) associated with either the near-field wide-areaillumination array 28 or far field wide-area illumination array 29.

As indicated at Step J, the illumination control method involvescapturing a wide-area image at the CMOS image sensing array using theillumination field produced during Step I.

As indicated at Step K, the illumination control method involves rapidlyprocessing the captured wide-area image during Step J to detect theabsence of high spatial-intensity levels in the captured wide-areaimage, confirming the elimination of the earlier detected specularreflection condition.

As indicated at Step L, the illumination control method involvesdetermining if no specular reflection condition is detected in theprocessed wide-area image at Step K, and if not, then the wide-areaimage is processed using the mode(s) selected for the Multi-ModeImage-Processing Bar Code Reading Subsystem 17. If a specular reflectioncondition is still detected in the processed wide-area image, then thecontrol process returns to Step A repeats Steps A through K, asdescribed above.

Specification of Symbologies and Modes Supported by the Multi-Mode BarCode Symbol Reading Subsystem Module Employed Within theHand-Supportable Digital Image-Based Bar Code Reading Device of thePresent Invention

FIG. 14 lists the various bar code symbologies supported by theMulti-Mode Bar Code Symbol Reading Subsystem 17 employed within thehand-supportable digital-imaging based bar code symbol reading device ofthe present invention. As shown therein, these bar code symbologiesinclude: Code 128; Code 39; 12 of 5; Code93; Codabar; UPC/EAN; Telepen;UK-Plessey; Trioptic; Matrix 2 of 5; Ariline 2 of 5; Straight 2 of 5;MSI-Plessey; Code11; and PDF417.

Specification of the Various Modes of Operation in the Multi-Mode BarCode Symbol Reading Subsystem of the Present Invention

As shown in FIG. 15, the Multi-Mode Image-Processing Based Bar CodeSymbol Reading Subsystem 17 of the illustrative embodiment supports fiveprimary modes of operation, namely: the Automatic Mode of Operation; theManual Mode of Operation; the ROI-Specific Mode of Operation; theNo-Finder Mode of Operation; and Omniscan Mode of Operation. As will bedescribed in greater detail herein, various combinations of these modesof operation can be used during the lifecycle of the image-processingbased bar code reading process of the present invention.

FIG. 16 is a exemplary flow chart representation showing the stepsinvolved in setting up and cleaning up the software sub-Applicationentitled “Multi-Mode Image-Processing Based Bar Code Symbol ReadingSubsystem 17”, once called from either (i) the CodeGate Task softwaremodule at the Block entitled READ BAR CODE(S) IN CAPTURED NARROW-AREAIMAGE indicated in FIG. 13E, or (ii) the Main Task software module atthe Block entitled “READ BAR CODE(S) IN CAPTURED WIDE-AREA IMAGE”indicated in FIG. 13J.

The Automatic Mode of Multi-Mode Bar Code Symbol Reading Subsystem

In its Automatic Mode of Operation, the Multi-Mode Bar Code SymbolReading Subsystem 17 is configured to automatically start processing acaptured frame of digital image data, prior to the complete bufferingthereof, so as to search for one or more bar codes represented thereinin an incremental manner, and to continue searching until the entireimage is processed.

This mode of image-based processing enables bar code locating andreading when no prior knowledge about the location of, or theorientation of, or the number of bar codes that may be present within animage, is available. In this mode of operation, the Multi-Mode Bar CodeSymbol Reading Subsystem 17 starts processing the image from thetop-left corner and continues until it reaches the bottom-right corner,reading any potential bar codes as it encounters them.

The Manual Mode of the Multi-Mode Bar Code Symbol Reading Subsystem

In its Manual Mode of Operation, the Multi-Mode Bar Code Symbol ReadingSubsystem 17 is configured to automatically process a captured frame ofdigital image data, starting from the center or sweep spot of the imageat which the user would have aimed the bar code reader, so as to searchfor (i.e. find) a at least one bar code symbol represented therein.Unlike the Automatic Mode, this is done by searching in a helical mannerthrough frames or blocks of extracted image feature data, and thenmarking the same and image-processing the corresponding raw digitalimage data until a bar code symbol is recognized/read within thecaptured frame of image data.

This mode of image processing enables bar code locating and reading whenthe maximum number of bar codes that could be present within the imageis known a priori and when portions of the primary bar code have a highprobability of spatial location close to the center of the image. TheMulti-Mode Bar Code Symbol Reading Subsystem 17 starts processing theimage from the center, along rectangular strips progressively furtherfrom the center and continues until either the entire image has beenprocessed or the programmed maximum number of bar codes has been read.

The ROI-Specific Mode of the Multi-Mode Bar Code Symbol ReadingSubsystem

In its ROI-Specific Mode of Operation, the Multi-Mode Bar Code SymbolReading Subsystem 17 is configured to automatically process a capturedframe of digital image data, starting from the region of interest (ROI)in the captured image, specified by coordinates acquired during aprevious mode of operation within the Multi-Mode Bar Code Symbol ReadingSubsystem 17. Unlike the Manual Mode, this is done by analyzing thereceived ROI-specified coordinates, derived during either a previousNoFinder Mode, Automatic Mode, or Omniscan Mode of operation, and thenimmediately begins processing image feature data, and image-processingthe corresponding raw digital image data until a bar code symbol isrecognized/read within the captured frame of image data. Thus,typically, the ROI-Specific Mode is used in conjunction with other modesof the Multi-Mode Bar Code Symbol Reading Subsystem 17.

This mode of image processing enables bar code locating and reading whenthe maximum number of bar codes that could be present within the imageis known a priori and when portions of the primary bar code have a highprobability of spatial location close to specified ROI in the image. TheMulti-Mode Bar Code Symbol Reading Subsystem starts processing the imagefrom these initially specified image coordinates, and then progressivelyfurther in a helical manner from the ROI-specified region, and continuesuntil either the entire image has been processed or the programmedmaximum number of bar codes have been read.

The No-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem

In its No-Finder Mode of Operation, the Multi-Mode Bar Code SymbolReading Subsystem 17 is configured to automatically process a capturednarrow-area (linear) frame of digital image data, without the featureextraction and marking operations used in the Automatic, Manual andROI-Specific Modes, so as to read a one or more bar code symbolsrepresented therein.

This mode enables bar code reading when it is known, a priori, that theimage contains at most one (1-dimensional) bar code symbol, portions ofwhich have a high likelihood of spatial location close to the center ofthe image and when the bar code is known to be oriented at zero degreesrelative to the horizontal axis. Notably, this is typically the casewhen the bar code reader is used in a hand-held mode of operation, wherethe bar code symbol reader is manually pointed at the bar code symbol tobe read. In this mode, the Multi-Mode Bar Code Symbol Reading Subsystem17 starts at the center of the image, skips all bar code location steps,and filters the image at zero (0) degrees and 180 degrees relative tothe horizontal axis. Using the “bar-and-space-count” data generated bythe filtration step, it reads the potential bar code symbol.

The Omni-Scan Mode of the Multi-Mode Bar Code Reading Subsystem

In its Omniscan Mode of Operation, the Multi-Mode Bar Code SymbolReading Subsystem 17 is configured to automatically process a capturedframe of digital image data along any one or more predetermined virtualscan line orientations, without feature extraction and markingoperations used in the Automatic, Manual and ROI-Specific Modes, so asto read a single bar code symbol represented in the processed image.

This mode enables bar code reading when it is known, a priori, that theimage contains at most one (1-dimensional) bar code, portions of whichhave a high likelihood of spatial location close to the center of theimage but which could be oriented in any direction. Multi-Mode Bar CodeSymbol Reading Subsystem 17 starts at the center of the image, skips allbar code location steps, and filters the image at different start-pixelpositions and at different scan-angles. Using the bar-and-space-countdata generated by the filtration step, the Omniscan Mode reads thepotential bar code symbol.

Programmable Modes of Bar Code Reading Operation within theHand-Supportable Digital Image-Based Bar Code Reading Device of thePresent Invention

As indicated in FIG. 26, the imaging-based bar code symbol reader of thepresent invention has at least seventeen (17) Programmable System Modesof Operation, namely: Programmed Mode of System Operation No.1—Manually-Triggered Single-Attempt 1D Single-Read Mode Employing theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem; ProgrammedMode Of System Operation No. 2—Manually-Triggered Multiple-Attempt 1DSingle-Read Mode Employing the No-Finder Mode of the Multi-Mode Bar CodeReading Subsystem; Programmed Mode Of System Operation No.3—Manually-Triggered Single-Attempt 1D/2D Single-Read Mode Employing theNo-Finder Mode And The Automatic Or Manual Modes of the Multi-Mode BarCode Reading Subsystem; Programmed Mode of System Operation No.4—Manually-Triggered Multiple-Attempt 1D/2D Single-Read Mode Employingthe No-Finder Mode And The Automatic Or Manual Modes of the Multi-ModeBar Code Reading Subsystem; Programmed Mode of System Operation No.5—Manually-Triggered Multiple-Attempt 1D/2D Multiple-Read Mode Employingthe No-Finder Mode And The Automatic Or Manual Modes of the Multi-ModeBar Code Reading Subsystem; Programmed Mode of System Operation No.6—Automatically-Triggered Single-Attempt 1D Single-Read Mode EmployingThe No-Finder Mode Of the Multi-Mode Bar Code Reading Subsystem;Programmed Mode of System Operation No. 7—Automatically-TriggeredMulti-Attempt 1D Single-Read Mode Employing The No-Finder Mode Of theMulti-Mode Bar Code Reading Subsystem; Programmed Mode of SystemOperation No. 7—Automatically-Triggered Multi-Attempt 1D/2D Single-ReadMode Employing The No-Finder Mode and Manual and/or Automatic Modes Ofthe Multi-Mode Bar Code Reading Subsystem; Programmed Mode of SystemOperation No. 9—Automatically-Triggered Multi-Attempt 1D/2DMultiple-Read Mode Employing The No-Finder Mode and Manual and/orAutomatic Modes Of the Multi-Mode Bar Code Reading Subsystem;Programmable Mode of System Operation No. 10—Automatically-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing The Manual, Automaticor Omniscan Modes Of the Multi-Mode Bar Code Reading Subsystem;Programmed Mode of System Operation No. 11—Semi-Automatic-TriggeredSingle-Attempt 1D/2D Single-Read Mode Employing The No-Finder Mode AndThe Automatic Or Manual Modes Of the Multi-Mode Bar Code ReadingSubsystem; Programmable Mode of System Operation No.12—Semi-Automatic-Triggered Multiple-Attempt 1D/2D Single-Read ModeEmploying The No-Finder Mode And The Automatic Or Manual Modes Of theMulti-Mode Bar Code Reading Subsystem; Programmable Mode of OperationNo. 13—Semi-Automatic-Triggered Multiple-Attempt 1D/2D Multiple-ReadMode Employing The No-Finder Mode And The Automatic Or Manual Modes Ofthe Multi-Mode Bar Code Reading Subsystem; Programmable Mode ofOperation No. 14—Semi-Automatic-Triggered Multiple-Attempt 1D/2DMultiple-Read Mode Employing The No-Finder Mode And The Omniscan ModesOf the Multi-Mode Bar Code Reading Subsystem; Programmable Mode ofOperation No. 15—Continuously-Automatically-Triggered Multiple-Attempt1D/2D Multiple-Read Mode Employing The Automatic, Manual Or OmniscanModes Of the Multi-Mode Bar Code Reading Subsystem; Programmable Mode ofSystem Operation No. 16—Diagnostic Mode Of Imaging-Based Bar Code ReaderOperation; and Programmable Mode of System Operation No. 17—Live VideoMode Of Imaging-Based Bar Code Reader Operation.

Preferably, these Modes Of System Operation can programmed by reading asequence of bar code symbols from a programming menu as taught, forexample, in U.S. Pat. No. 6,565,005, which describes a bar code scannerprogramming technology developed by Metrologic Instruments, Inc., andmarketed under the name MetroSelect® Single Line ConfigurationProgramming Method.

These Programmable System Modes of Operation will be described in detailhereinbelow. Alternatively, the MetroSet® Graphical User Interface (GUI)can be used to view and change configuration parameters in the bar codesymbol reader using a PC. Alternatively, a Command Line Interface (CLI)may also be used to view and change configuration parameters in the barcode symbol reader,

Each of these programmable modes of bar code reader operation shall benow described in greater detail with reference to other components ofthe system that are configured together to implement the same inaccordance with the principles of the present invention.

Overview of the Imaging-Based Bar Code Reader Start-Up Operations

When the bar code reader hereof boots up, its FPGA is programmedautomatically with 12.5/50/25 MHz clock firmware and all required devicedrivers are also installed automatically. The login to the OperatingSystem is also done automatically for the user “root”, and the user isautomatically directed to the /root/ directory. For nearly allprogrammable modes of system operation employing automatic objectdetection, the IR object detection software driver is installedautomatically. Also, for all Programmable System Modes of operationemploying the narrow-area illumination mode, the narrow-areaillumination software drivers are automatically installed, so that aPulse Width Modulator (PWM) is used to drive the narrow-area LED-basedillumination array 27. To start the bar code reader operation, theoperating system calls the/tmp/ directory first (“cd /tmp”), and thenthe focusapp program, located in /root/ directory is run, because the/root/ directory is located in Flash ROM, and to save captured images,the directory /tmp/ should be the current directory where the image isstored in transition to the host), which is located in RAM.

Operating the Hand-Supportable Image-Processing Bar Code Symbol Readerof the Present Invention in a Manually-Triggered Mode of Operation

The hand-supportable image-processing bar code symbol reader of thepresent invention can be programmed to operate in any one of a number ofdifferent “manually-triggered” modes of system operation, as identifiedin Nos. 1 through 5 in FIG. 17AFIG. 17A. However, during each of thesemanually-triggered modes of operation, the image-processing bar codesymbol reader controls and coordinates its subsystem components inaccordance with a generalized method of manually-triggered operation.

In particular, upon automatic detection of an object within its IR-basedobject detection field, the IR-based object presence detection subsystemautomatically generates an object detection event, and in responsethereto, the multi-mode LED-based illumination subsystem automaticallyproduces a narrow-area field of narrow-band illumination within the FOVof said image formation and detection subsystem.

Then, upon the generation of the trigger event by the user depressingthe manually-actuatable trigger, the following operations areautomatically carried out:

(i) the image capturing and buffering subsystem automatically capturesand buffers a narrow-area digital image of the object using thenarrow-area field of narrow-band illumination within the FOV, during thenarrow-area image capture mode of said multi-mode image formation anddetection subsystem; and

(ii) the image processing bar code symbol reading subsystemautomatically processes said 1D digital image attempts processes thenarrow-area digital image in effort to read a 1D bar code symbolrepresented therein, and upon successfully decoding a 1D bar code symboltherein, automatically produces symbol character data representativethereof.

Then, upon said multi-mode image processing bar code symbol readingsubsystem failing to successfully read the 1D bar code symbolrepresented in the narrow-area digital image, the following operationsare automatically carried out:

(i) the multi-mode LED-based illumination subsystem automaticallyproduces a wide-area field of narrow-band illumination within the FOV ofthe multi-mode image formation and detection subsystem,

(ii) the image capturing and buffering subsystem captures and buffers awide-area digital image during the wide-area image capture mode of theimage capturing and buffering subsystem, and

(iii) the image processing bar code symbol reading subsystem processesthe wide-area digital image in effort to read a 1D or 2D bar code symbolrepresented therein, and upon successfully decoding a 1D or 2D bar codesymbol therein, automatically produces symbol character datarepresentative thereof.

Programmed Mode of System Operation No. 1: Manually-TriggeredSingle-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Symbol Reading Subsystem

Programmed Mode of System Operation No. 1 involves configuration of thesystem as follows: disabling the IR-based Object Presence and RangeDetection Subsystem 12; and enabling the use of manual-triggeractivation, the narrow-area illumination mode within the Multi-ModeIllumination Subsystem 14, the narrow-area image capture mode in theImage Formation and Detection Subsystem 13, and the No-Finder Mode ofthe Multi-Mode Bar Code Reading Subsystem 17.

During this mode of system operation, when a user pulls the triggerswitch 2C, the system activates the narrow-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the narrow-area image capturemode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Symbol Reading Subsystem 17.Then, the bar code reader illuminates the target object usingnarrow-area illumination, captures a narrow-area image of the targetobject, and launches the No-Finder Mode of the Multi-Mode Bar CodeSymbol Reading Subsystem 17. The captured image is then processed usingthe No-Finder Mode. If a single cycle of programmed image processingresults in the successful reading of a 1D bar code symbol, then theresulting symbol character data is sent to the Input/Output Subsystem 18for use by the host system. If single cycle of programmed imageprocessing is not result in a successful reading of a 1D bar codesymbol, then the cycle is terminated, all subsystems are deactivated,and the bar code reader returns to its sleep mode of operation, and waitfor the next event (e.g. manually pulling trigger switch 2C) which willtrigger the system into active operation.

Programmed Mode of System Operation No. 2: Manually-TriggeredMultiple-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Symbol Reading Subsystem

Programmed Mode of System Operation No. 2 involves configuration of thesystem as follows: disabling the IR-based Object Presence and RangeDetection Subsystem 12; and enabling the use of manual-triggeractivation, the narrow-area illumination mode within the Multi-ModeIllumination Subsystem 14, the narrow-area image capture mode in theImage Formation and Detection Subsystem 13, and the No-Finder Mode ofthe Multi-Mode Bar Code Symbol Reading Subsystem 17.

During this mode of system operation, when a user pulls the triggerswitch 2C, the system activates the narrow-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the narrow-area image capturemode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then,the bar code reader illuminates the target object using narrow-areaillumination, captures a narrow-area image of the target object, andlaunches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem17. The captured narrow-area image is then processed using the No-FinderMode. If the single cycle of programmed image processing results in thesuccessful reading of a 1D bar code symbol, then the resulting symbolcharacter data is sent to the Input/Output Subsystem for use by the hostsystem. If the cycle of programmed image processing does not produce asuccessful read, then the system automatically enables successive cyclesof illumination/capture/processing so long as the trigger switch 2C isbeing pulled, and then until the system reads a bar code symbol within acaptured image of the target object; only thereafter, or when the userreleases the trigger switch 2C, will the bar code symbol reader returnto its sleep mode of operation, and wait for the next event that willtrigger the system into active operation. In the illustrativeembodiment, the default decode timeout is set to 500 ms which can besimply changed by programming. This default decode timeout settingensures that while the trigger switch 2C is being pulled by the user,the imaging-based bar code symbol reader will re-attempt reading every500 ms (at most) until it either succeeds or the trigger switch 2C ismanually released.

Programmed Mode of System Operation No. 3: Manually-TriggeredSingle-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode andthe Automatic, Manual or ROI-Specific Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 3 involves configuration of thesystem as follows: disabling the IR-based Object Presence and RangeDetection Subsystem 12; and enabling the use of manual-triggeractivation, the narrow-area and wide-area illumination modes within theMulti-Mode Illumination Subsystem 14, the narrow-area and wide-areaimage capture modes in the Image Formation and Detection Subsystem 13,and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modesof the Multi-Mode Bar Code Reading Subsystem 17.

During this programmable mode of system operation, the bar code readeris idle (in its sleep mode) until a user points the bar code readertowards an object with a bar code label, and then pulls the triggerswitch 2C. When this event occurs, the system activates the narrow-areaillumination mode within the Multi-Mode Illumination Subsystem 14 (i.e.drives the narrow-area illumination array 27), the narrow-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Then,the bar code reader illuminates the target object using narrow-areaillumination, captures a narrow-area image of the target object, andlaunches the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem17. The captured narrow-area image is then processed using the No-FinderMode. If this single cycle of programmed image processing results in thesuccessful reading of a 1D bar code symbol, then the resulting symbolcharacter data is sent to the Input/Output Subsystem 18 for use by thehost system. If this cycle of programmed image processing does notproduce a successful read, then the system deactivates the narrow-areaillumination mode within the Multi-Mode Illumination Subsystem 14, thenarrow-area image capture mode of the Image Formation and DetectionSubsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code ReadingSubsystem 17, and then activates the wide-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the wide-area image capturemode of the Image Formation and Detection Subsystem 13, and the Manual,ROI-Specific and/or Automatic Modes of the Multi-Mode Bar Code ReadingSubsystem 17. Then the bar code reader illuminates the target objectusing both near-field and far-field wide-area illumination, captures awide-area image of the target object, and launches the Manual,ROI-Specific or Automatic Mode of the Multi-Mode Bar Code ReadingSubsystem 17. The captured wide-area image is then processed using theManual, ROI-Specific or Automatic Mode. If this single cycle ofprogrammed image processing results in the successful reading of a 1D or2D bar code symbol, then the resulting symbol character data is sent tothe Input/Output Subsystem 18 for use by the host system. If this cycleof programmed image processing does not produce a successful read, thenthe subsystem 19 deactivates all subsystems and then returns to itssleep mode, and waits for an event, which will cause it to re-enter itsactive mode of operation.

Programmed Mode of System Operation No. 4: Manually-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode andthe Automatic Manual or ROI-Specific Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 4 involves configuration of thesystem as follows: disabling the IR-based object detection subsystem 12;and enabling the use of manual-trigger activation, the narrow-area andwide-area illumination modes within the Multi-Mode IlluminationSubsystem 14, the narrow-area and wide-area image capture modes of theImage Formation and Detection Subsystem 13, and the No-Finder Mode andManual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar CodeReading Subsystem 17.

During this programmed mode of system operation, when a user pulls thetrigger switch 2C, the system activates the narrow-area illuminationmode within the Multi-Mode Illumination Subsystem 14, the narrow-areaimage capture mode of the Image Formation and Detection Subsystem 13,and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17.Then, the bar code reader illuminates the target object usingnarrow-area illumination, captures a narrow-area image of the targetobject, and launches the No-Finder Mode of the Multi-Mode Bar CodeReading Subsystem 17. The captured narrow-area image is then processedusing the No-Finder Mode. If this single cycle of programmed imageprocessing results in the successful reading of a 1D bar code symbol,then the resulting symbol character data is sent to the Input/OutputSubsystem for use by the host system. If this cycle of programmed imageprocessing does not produce a successful read, then the systemdeactivates the narrow-area illumination mode within the Multi-ModeIllumination Subsystem 14, the narrow-area image capture mode of theImage Formation and Detection Subsystem 13, and the No-Finder Mode ofthe Multi-Mode Bar Code Reading Subsystem 17, and then activates thewide-area illumination mode within the Multi-Mode Illumination Subsystem14, the wide-area image capture mode of the Image Formation andDetection Subsystem 13, and the Manual and/or Automatic Mode of theMulti-Mode Bar Code Reading Subsystem 17. Then, the bar code readerilluminates the target object using both near-field and far-fieldwide-area illumination, captures a wide-area image of the target object,and launches the Manual (or Automatic) Mode of the Multi-Mode Bar CodeReading Subsystem. The captured wide-area image is then processed usingthe Manual Mode of bar code symbol reading. If this single cycle ofprogrammed processing results in the successful reading of a 1D or 2Dbar code symbol, then the resulting symbol character data is sent to theInput/Output Subsystem 18 for use by the host system. If this cycle ofprogrammed image processing does not produce a successful read of asingle 1D or 2D bar code symbol, then the Subsystem 19 automaticallyenables successive cycles of wide-area illumination/wide-area imagecapture and processing so long as the trigger switch 2C is being pulled,and then until the system reads a single 1D or 2D bar code symbol withina captured image of the target object; only thereafter, or when the userreleases the trigger switch 2C, will the bar code reader return to itssleep mode of operation, and wait for the next event that will triggerthe system into active operation. In the illustrative embodiment, thedefault decode timeout is set to 500 ms which can be simply changed byprogramming. This default decode timeout setting ensures that while thetrigger switch is being pulled by the user, the imaging-based bar codesymbol reader will re-attempt reading every 500 ms (at most) until iteither succeeds or the trigger switch 2C is manually released.

Programmed Mode of System Operation No. 5: Manually-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Modeand the Automatic Manual or ROI-Specific Modes of the Multi-Mode BarCode Reading Symbol Subsystem

Programmed Mode of System Operation No. 5 involves configuration of thesystem as follows: disabling the IR-based Object Presence and RangeDetection Subsystem 12; and enabling the use of manual-triggeractivation, the narrow-area and wide-area illumination modes within theMulti-Mode Illumination Subsystem 14, the narrow-area and wide-areaimage capture modes of the Image Formation and Detection Subsystem 13,and the No-Finder Mode and Manual, ROI-Specific and/or Automatic Modesof the Multi-Mode Bar Code Reading Subsystem 17.

During this mode of system operation, when a user pulls the triggerswitch 2C, the system activates the narrow-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the narrow-area image capturemode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem. Then, thebar code reader illuminates the target object using narrow-areaillumination, captures a narrow-area image of the target object, andlaunches the No-Finder Mode of the Multi-Mode Bar Code ReadingSubsystem. The captured narrow-area image is then processed using theNo-Finder Mode. If this single cycle of programmed processing results inthe successful decoding of a 1D bar code symbol, then the resultingsymbol character data is sent to the Input/Output Subsystem 18 for useby the host system. If this cycle of programmed decode image processingdoes not produce a successful read, then the system deactivates thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode of the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17, and then activates the wide-area illuminationmode within the Multi-Mode Illumination Subsystem, the wide-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theManual and/or Automatic Mode of the Multi-Mode Bar Code ReadingSubsystem 17. Then, the bar code reader illuminates the target objectusing both near-field and far-field wide-area illumination, captures awide-area image of the target object, and launches the Manual(ROI-Specific and/or Automatic) Mode of the Multi-Mode Bar Code ReadingSubsystem 17. The captured wide-area image is then processed using theManual Mode of reading. If this single cycle of programmed processingresults in the successful reading of a 1D or 2D bar code symbol, thenthe resulting symbol character data is sent to the Input/OutputSubsystem 18 for use by the host system. If this cycle of programmedimage processing does not produce a successful reading of one or more 1Dand/or 2D bar code symbols, then the system automatically enablessuccessive cycles of wide-area illumination/wide-area imagecapture/image processing so long as the trigger switch is being pulled,and then until the system reads one or more 1D and/or 2D bar codesymbols within a captured image of the target object; only thereafter,or when the user releases the trigger switch 2C, will the bar codereader return to its sleep mode of operation, and wait for the nextevent that will trigger the system into active operation. In theillustrative embodiment, the default decode timeout is set to 500 mswhich can be simply changed by programming. This default decode timeoutsetting ensures that while the trigger switch 2C is being pulled by theuser, the imaging-based bar code symbol reader will re-attempt readingevery 500 ms (at most) until it either succeeds or the trigger switch 2Cis manually released.

Programmed Mode of System Operation No. 6: Automatically-TriggeredSingle-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Symbol Reading Subsystem

Programmed Mode of System Operation No. 6 involves configuration of thesystem as follows: disabling the use of manual-trigger activation; andenabling IR-based Object Presence and Range Detection Subsystem 12, thenarrow-area illumination mode only within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode only in the ImageFormation and Detection Subsystem 13, and the No-Finder Mode of theMulti-Mode Bar Code Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected, the bar code reader“wakes up” and the system activates the narrow-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the narrow-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thiscauses the system to illuminate a “narrow” horizontal area of the targetobject at the center of the field-of-view (FOV) of the bar code reader,indicating to the user where the area targeted by the bar code readeris, and thus, enabling the user to position and align the narrow-areaillumination beam on the target bar code. Then, the systemcaptures/acquires a narrow-area image, which is then processed using theBar Code Symbol Reading Subsystem 17 configured in its No-Finder Mode ofoperation. If this single cycle of programmed decode processing resultsin the successful reading of a 1D bar code symbol, then the resultingsymbol character data is sent to the Input/Output Subsystem 18 for useby the host system. If this cycle of programmed image processing doesnot produce a successful read, then the system deactivates allsubsystems, causing the bar code reader return to its sleep mode ofoperation, and wait for the next event that will trigger the system intoactive operation.

Programmed Mode of System Operation No. 7: Automatically-TriggeredMulti-Attempt 1D Single-Read Mode Employing the No-Finder Mode of theMulti-Mode Bar Code Symbol Reading Subsystem

Programmed Mode of System Operation No. 7 involves configuration of thesystem as follows: disabling the use of manual-trigger activation; andenabling IR-based Object Presence And Range Detection Subsystem 12, thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode in the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the bar code reader towards an object with abar code label. Once the object is under the field-of-view of the barcode reader, and the object is automatically detected, the bar codereader “wakes up” and the system activates the narrow-area illuminationmode within the Multi-Mode Illumination Subsystem 14, the narrow-areaimage capture mode of the Image Formation and Detection Subsystem 13,and the No-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17.This causes the system to illuminate a “narrow” horizontal area of thetarget object at the center of the field-of-view (FOV) of the bar codereader, indicating to the user where the area targeted by the bar codereader is, and thus, enabling the user to position and align thenarrow-area illumination beam on the target bar code. Then, the systemcaptures/acquires a narrow-area image, which is then processed using theNo-Finder Mode. If this single cycle of programmed image processingresults in the successful reading of a 1D bar code symbol, then theresulting symbol character data is sent to the Input/Output Subsystem 18for use by the host system. If this cycle of programmed image processingdoes not produce a successful decode, then the system automaticallyenables successive cycles of narrow-area illumination/narrow-area imagecapture/processing so long as the trigger switch 2C is being pulled, andthen until the system reads a single 1D bar code symbol within acaptured image of the target object; only thereafter, or when the userreleases the trigger switch 2C, will the bar code reader return to itssleep mode of operation, and wait for the next event that will triggerthe system into active operation. In the illustrative embodiment, thedefault decode timeout is set to 500 ms which can be simply changed byprogramming. This default decode timeout setting ensures that while thetrigger switch is being pulled by the user, the imaging-based bar codesymbol reader will re-attempt reading every 500 ms (at most) until iteither succeeds or the trigger switch 2C is manually released.

Programmed Mode of System Operation No. 7: Automatically-TriggeredMulti-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode andManual, ROI-Specific and/or Automatic Modes Of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 7 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringall phase of system operation; and enabling IR-based Object Presence andRange Detection Subsystem 12, the narrow-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the narrow-area image capturemode in the Image Formation and Detection Subsystem 13, and theNo-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of theMulti-Mode Bar Code Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the scanner, andthe object is automatically detected, the bar code reader “wakes up” andthe system activates the narrow-area illumination mode within theMulti-Mode Illumination Subsystem, 14 the narrow-area image capture modeof the Image Formation and Detection Subsystem 13, and the No-FinderMode of the Multi-Mode Bar Code Reading Subsystem 17. This causes thesystem to illuminate a “narrow” horizontal area of the target object atthe center of the field-of-view (FOV) of the bar code reader, indicatingto the user where the area targeted by the bar code reader is, and thus,enabling the user to position and align the narrow-area illuminationbeam on the target bar code. Then, the system captures/acquires anarrow-area image, which is then processed using the No-Finder Mode ofoperation. If this single cycle of programmed image processing resultsin the successful reading of a 1D bar code symbol, then the resultingsymbol character data is sent to the Input/Output Subsystem 18 for useby the host system. If this cycle of programmed image processing doesnot produce a successful read, then the system deactivates thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode of the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17, and then activates the wide-area illuminationmode within the Multi-Mode Illumination Subsystem 14, the wide-areaimage capture mode in the Image Formation and Detection Subsystem 13,and the Manual, ROI-Specific and/or Automatic Modes of the Multi-ModeBar Code Reading Subsystem 17. Then, the bar code symbol readerilluminates the target object using either near-field or far-fieldwide-area illumination (depending on the detected range of the targetobject), captures a wide-area image of the target object, and launchesthe Manual, ROI-Specific or Automatic Mode of the Multi-Mode Bar CodeReading Subsystem 17. The captured wide-area image is then processedusing the Manual Mode of reading. If this cycle of programmed imageprocessing results in the successful reading of a single 1D or 2D barcode symbol, then the resulting symbol character data is sent to theInput/Output Subsystem 18 for use by the host system. If this cycle ofprogrammed image processing does not produce a successful reading of asingle 1D or 2D bar code symbol, then the system automatically enablessuccessive cycles of wide-area illumination/wide-area imagecapture/processing so long as the target object is being detected, andthen until the system reads one or more 1D and/or 2D bar code symbolswithin a captured image of the target object; only thereafter, or whenthe user moves the object out of the FOV of the bar code reader, willthe bar code reader return to its sleep mode of operation, and wait forthe next event that will trigger the system into active operation. Inthe illustrative embodiment, the default decode timeout is set to 500 mswhich can be simply changed by programming. This default decode timeoutsetting ensures that while the object is being detected by the bar codereader, the bar code symbol reader will re-attempt reading every 500 ms(at most) until it either succeeds or the object is moved away from theFOV of the bar code reader.

Programmed Mode of System Operation No. 9: Automatically-TriggeredMulti-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Mode andManual. ROI-Specific and/or Automatic Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 9 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringall phases of system operation; and enabling IR-based Object Presenceand Range Detection Subsystem 12, the narrow-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the narrow-area imagecapture mode in the Image Formation and Detection Subsystem 13, and theNo Finder Mode and Manual or Automatic Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected, the bar code reader“wakes up” and the system activates the narrow-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the narrow-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thiscauses the system to illuminate a “narrow” horizontal area of the targetobject at the center of the field-of-view (FOV) of the bar code reader,indicating to the user where the area targeted by the bar code readeris, and thus, enabling the user to position and align the narrow-areaillumination beam on the target bar code. Then, the systemcaptures/acquires a narrow-area image, which is then processed using theNo-Finder Mode. If this single cycle of programmed processing results inthe successful reading of a 1D bar code symbol, then the resultingsymbol character data is sent to the Input/Output Subsystem 18 for useby the host system. If this cycle of programmed image processing doesnot produce a successful read, then the system deactivates thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode of the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17, and then activates the wide-area illuminationmode within the Multi-Mode Illumination Subsystem 14, the wide-areaimage capture mode in the Image Formation and Detection Subsystem 13,and the Manual and/or Automatic Modes of the Multi-Mode Bar Code ReadingSubsystem 17. Then, the bar code reader illuminates the target objectusing either near-field or far-field wide-area illumination (dependingon the detected range of the target object), captures a wide-area imageof the target object, and launches the Manual (ROI-Specific orAutomatic) Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thecaptured wide-area image is then processed using the Manual Method ofdecoding. If this cycle of programmed image processing results in thesuccessful reading of a single 1D or 2D bar code symbol, then theresulting symbol character data is sent to the Input/Output Subsystem 18for use by the host system. If this cycle of programmed image processingdoes not produce a successful read of a single 1D or 2D bar code symbol,then the system automatically enables successive cycles ofwide-area-illumination/wide-area image-capture/processing so long as thetarget object is being detected, and then until the system reads one ormore 1D and/or 2D bar code symbols within a captured image of the targetobject; only thereafter, or when the user moves the object out of theFOV of the bar code symbol reader, will the bar code reader return toits sleep mode of operation, and wait for the next event that willtrigger the system into active operation. In the illustrativeembodiment, the default decode timeout is set to 500 ms which can besimply changed by programming. This default decode timeout settingensures that while the object is being detected by the bar code reader,the bar code reader will re-attempt reading every 500 ms (at most) untilit either succeeds or the object is moved away from the FOV of the barcode reader.

Programmable Mode of System Operation No. 10: Automatically-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing the ManualROI-Specific. Automatic or Omniscan Modes Of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 10 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringall phase of system operation; and enabling IR-based Object Presence andRange Detection Subsystem 12, the narrow-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the narrow-area image capturemode in the Image Formation and Detection Subsystem 13, and the Manual,ROI-Specific, Automatic or Omniscan Modes of the Multi-Mode Bar CodeReading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user present an object with a bar code symbol under thefield-of-view of the bar code reader, and the object is automaticallydetected, the bar code reader “wakes up” and the system activates thewide-area illumination mode within the Multi-Mode Illumination Subsystem14, the wide-area image capture mode in the Image Formation andDetection Subsystem 13, and either Manual, ROI-Specific, Automatic orOmniscan Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thiscauses the system to illuminate a wide area of the target object withinthe field-of-view (FOV) of the bar code reader with far-field ornear-field wide area illumination (depending on the detected range ofthe target object), and capture/acquire a wide-area image which is thenprocessed using either the Manual, ROI-Specific, Automatic or OmniscanMethod of reading. If this single cycle of programmed processing resultsin the successful reading of a 1D or 2D bar code symbol (when theManual, ROI-Specific and Automatic Methods are used), then the resultingsymbol character data is sent to the Input/Output Subsystem for use bythe host system. If this cycle of programmed image processing does notproduce a successful read, then the system automatically enablessuccessive cycles of wide-areaillumination/wide-area-image-capture/processing so long as the targetobject is being detected, and then until the system reads a single 1Dand/or 2D bar code symbol within a captured image of the target object;only thereafter, or when the user moves the object out of the FOV of thebar code reader, will the bar code reader return to its sleep mode ofoperation, and wait for the next event that will trigger the system intoactive operation. In the illustrative embodiment, the default decodetimeout is set to 500 ms which can be simply changed by programming.This default decode timeout setting ensures that while the object isbeing detected by the bar code reader, the bar code reader willre-attempt reading every 500 ms (at most) until it either succeeds orthe object is moved away from the FOV of the bar code reader.

Programmed Mode of System Operation No. 11: Semi-Automatic-TriggeredSingle-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode andthe Automatic ROI-Specific or Manual Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 11 involves configuration of thesystem as follows: disabling the use of the manual-trigger activationduring the system activation phase of operation; and enabling theIR-based Object Presence and Range Detection Subsystem 12, thenarrow-area and wide-area illumination modes within the Multi-ModeIllumination Subsystem 14, the narrow-area and wide-area image capturemodes in the Image Formation and Detection Subsystem 13, and theNo-Finder Mode and Manual, ROI-Specific and/or Automatic Modes of theMulti-Mode Bar Code Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected, the bar code reader“wakes up” and the system activates the narrow-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the narrow-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thiscauses the system to illuminate a “narrow” horizontal area of the targetobject at the center of the field-of-view (FOV) of the bar code reader,indicating to the user where the area targeted by the bar code readeris, and thus, enabling the user to position and align the narrow-areaillumination beam on the target bar code. Then, the systemcaptures/acquires a narrow-area image, which is then processed using theNo-Finder Mode. If this single cycle of programmed image processingresults in the successful reading of a 1D bar code symbol, then theresulting symbol character data is sent to the Input/Output Subsystem 18for use by the host system. If this cycle of programmed image processingdoes not produce a successful read, then the system deactivates thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode of the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17, and then activates the wide-area illuminationmode within the Multi-Mode Illumination Subsystem 14, the wide-areaimage capture mode of the Image Formation and Detection Subsystem 13,and the Manual, ROI-Specific and/or Automatic Mode of the Multi-Mode BarCode Reading Subsystem 17. Then, if the user pulls the trigger switch 2Cduring narrow-area illumination and image capture and continues to doso, the bar code reader will automatically illuminate the target objectusing wide-area illumination, capture a wide-area image of the targetobject, and launch the Manual, ROI-Specific or Automatic Mode of theMulti-Mode Bar Code Symbol Reading Subsystem 17. The captured wide-areaimage is then processed using the Manual, ROI-Specific or AutomaticMode/Method of bar code reading. If this single cycle of programmedimage processing results in the successful reading of a single 1D or 2Dbar code symbol, then the resulting symbol character data is sent to theInput/Output Subsystem 18 for use by the host system. If this cycle ofprogrammed image processing does not produce a successful reading of asingle 1D or 2D bar code symbol, then the subsystem 19 automaticallydeactivates all subsystems, causing the bar code reader return to itssleep mode of operation, and wait for the next event that will triggerthe system into active operation.

Programmable Mode of System Operation No. 12: Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Single-Read Mode Employing the No-Finder Mode andthe Automatic, ROI-Specific or Manual Modes of the Multi-Mode Bar CodeSymbol Reading Subsystem

Programmed Mode of System Operation No. 12 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringthe system activation phase of operation; and enabling the IR-basedObject Presence and Range Detection Subsystem 12, the narrow-area andwide-area illumination modes within the Multi-Mode IlluminationSubsystem 14, the narrow-area and wide-area image capture modes in theImage Formation and Detection Subsystem 13, and the No-Finder Mode andManual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar CodeReading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected, the bar code reader“wakes up” and the system activates the narrow-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the narrow-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theNo-Finder Mode of the Multi-Mode Bar Code Reading Subsystem 17. Thiscauses the system to illuminate a “narrow” horizontal area of the targetobject at the center of the field-of-view (FOV) of the bar code reader,indicating to the user where the area targeted by the bar code readeris, and thus, enabling the user to position and align the narrow-areaillumination beam on the target bar code. Then, the systemcaptures/acquires a narrow-area image, which is then processed using theNo-Finder Mode. If this single cycle of programmed image processingresults in the successful reading of a 1D bar code symbol, then theresulting symbol character data is sent to the Input/Output Subsystem 18for use by the host system. If this cycle of programmed image processingdoes not produce a successful read, then the system deactivates thenarrow-area illumination mode within the Multi-Mode IlluminationSubsystem 14, the narrow-area image capture mode of the Image Formationand Detection Subsystem 13, and the No-Finder Mode of the Multi-Mode BarCode Reading Subsystem 17, and then activates the wide-area illuminationmode within the Multi-Mode Illumination Subsystem, the wide-area imagecapture mode of the Image Formation and Detection Subsystem 13, and theManual, ROI-Specific and/or Automatic Mode of the Multi-Mode Bar CodeReading Subsystem 17. Then, if the user pulls the trigger switch 2Cduring narrow-area illumination and image capture and continues to doso, the bar code reader will automatically illuminate the target objectusing wide-area illumination, capture a wide-area image of the targetobject, and launches the Manual, ROI-Specific or Automatic Mode of theMulti-Mode Bar Code Reading Subsystem 17. The captured wide-area imageis then processed using the Manual Mode of reading. If this single cycleof programmed image processing results in the successful reading of asingle 1D or 2D bar code symbol, then the resulting symbol characterdata is sent to the Input/Output Subsystem 18 for use by the hostsystem. If this cycle of programmed image processing does not produce asuccessful decode of a single 1D or 2D bar code symbol, then the systemautomatically enables successive cycles of wide-areaillumination/wide-area-image-capture/processing so long as the triggerswitch 2C is being pulled, and then until the system reads one or more1D and/or 2D bar code symbols within a captured image of the targetobject; only thereafter, or when the user releases the trigger switch2C, will the bar code reader return to its sleep mode of operation, andwait for the next event that will trigger the system into activeoperation. In the illustrative embodiment, the default decode timeout isset to 500 ms which can be simply changed by programming. This defaultdecode timeout setting ensures that while the trigger switch 2 c isbeing pulled by the user, the imaging-based bar code symbol reader willre-attempt reading every 500 ms (at most) until it either succeeds orthe trigger switch 2C is manually released.

Implementation of Programmable Mode of System Operation No. 12

When the Focus IR module detects an object in front of object detectionfield 20, it posts the OBJECT_DETECT_ON event to the Application Layer.The Application Layer software responsible for processing this eventstarts the CodeGate Task. When the user pulls the trigger switch 2C, theTRIGGER_ON event is posted to the Application. The Application Layersoftware responsible for processing this event checks if the CodeGateTask is running, and if so, it cancels it and then starts the Main Task.When the user releases the trigger switch 2C, the TRIGGER_OFF event isposted to the Application. The Application Layer software responsiblefor processing this event, checks if the Main Task is running, and ifso, it cancels it. If the object is still within the object detectionfield 20, the Application Layer starts the CodeGate Task again.

When the user moves the bar code reader away from the object (or theobject away from the bar code reader), the OBJECT_DETECT_OFF event isposted to the Application Layer. The Application Layer softwareresponsible for processing this event checks if the CodeGate Task isrunning, and if so, it cancels it. The CodeGate Task, in an infiniteloop, does the following. It activates the narrow-area illuminationarray 27 which illuminates a “narrow” horizontal area at the center ofthe field-of-view and then the Image Formation and Detection Subsystem13 acquires an image of that narrow-area (i.e. few rows of pixels on theCMOS image sensing array 22), and then attempts to read a bar codesymbol represented in the image. If the read is successful, it saves thedecoded data in the special CodeGate data buffer. Otherwise, it clearsthe CodeGate data buffer. Then, it continues the loop. The CodeGate Tasknever exits on its own; it can be canceled by other modules of the Focussoftware when reacting to other events.

When a user pulls the trigger switch 2C, the event TRIGGER_ON is postedto the Application Layer. The Application Layer software responsible forprocessing this event, checks if the CodeGate Task is running, and ifso, it cancels it and then starts the Main Task. The CodeGate Task canalso be canceled upon OBJECT_DETECT_OFF event, posted when the usermoves the bar code reader away from the object, or the object away fromthe bar code reader.

Programmable Mode of Operation No. 13: Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Modeand the Automatic, ROI-Specific or Manual Modes of the Multi-Mode BarCode Reading Subsystem

Programmed Mode of System Operation No. 13 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringthe system activation phase of operation; and enabling the IR-basedObject Presence and Range Detection Subsystem 12, the narrow-area andwide-area illumination modes within the Multi-Mode IlluminationSubsystem 14, the narrow-area and wide-area image capture modes in theImage Formation and Detection Subsystem 13, and the No-Finder Mode andManual, ROI-Specific and/or Automatic Modes of the Multi-Mode Bar CodeReading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected by the Object Presenceand Range Detection Subsystem 12, the bar code reader “wakes up” and thesystem activates the narrow-area illumination mode in the Multi-ModeIllumination Subsystem 14, the narrow-area image capture mode in theImage Formation and Detection Subsystem 13, and the No-Finder Mode ofthe Multi-Mode Bar Code Reading Subsystem 17. This causes the system toilluminate a “narrow” horizontal area of the target object at the centerof the field-of-view (FOV) of the bar code reader, indicating to theuser where the area targeted by the bar code reader is, and thus,enabling the user to position and align the narrow-area illuminationbeam on the target bar code. Then, the system captures/acquires anarrow-area image which is then processed using the No-Finder Mode. Ifthis single cycle of programmed image processing results in thesuccessful reading of a 1D bar code symbol, then the resulting symbolcharacter data is sent to the Input/Output Subsystem 18 for use by thehost system. If this cycle of programmed image processing does notproduce a successful read, then the system deactivates the narrow-areaillumination mode within the Multi-Mode Illumination Subsystem 14, thenarrow-area image capture mode of the Image Formation and DetectionSubsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code ReadingSubsystem 17, and then activates the wide-area illumination mode withinthe Multi-Mode Illumination Subsystem 14, the wide-area image capturemode of the Image Formation and Detection Subsystem 13, and the Manualand/or Automatic Mode of the Multi-Mode Bar Code Reading Subsystem 17.Then, if the user pulls the trigger switch 2C during narrow-areaillumination and image capture and continues to do so, the bar codereader will automatically illuminate the target object using wide-areaillumination, capture a wide-area image of the target object, and invokethe Manual, ROI-Specific and/or Automatic Mode of the Multi-Mode BarCode Reading Subsystem 17. The captured wide-area image is thenprocessed using the Manual, ROI-Specific or Automatic Mode of reading.If this single cycle of programmed image processing results in thesuccessful reading of one or more 1D and/or 2D bar code symbols, thenthe resulting symbol character data is sent to the Input/OutputSubsystem 18 for use by the host system. If this cycle of programmeddecode image processing does not produce a successful reading of one ormore 1D and/or 2D bar code symbols then the system automatically enablessuccessive cycles of wide-areaillumination/wide-area-image-capture/image-processing so long as thetrigger switch 2C is being pulled, and then until the system reads oneor morel D and/or 2D bar code symbols within a captured image of thetarget object; only thereafter, or when the user releases the triggerswitch 2C, will the bar code reader return to its sleep mode ofoperation, and wait for the next event that will trigger the system intoactive operation. In the illustrative embodiment, the default decodetimeout is set to 500 ms which can be simply changed by programming.This default decode timeout setting ensures that while the triggerswitch 2C is being pulled by the user, the Imaging-Based Bar Code SymbolReader will re-attempt reading every 500 ms (at most) until it eithersucceeds or the trigger switch 2C is manually released.

Programmable Mode of Operation No. 14: Semi-Automatic-TriggeredMultiple-Attempt 1D/2D Multiple-Read Mode Employing the No-Finder Modeand the Omniscan Modes of the Multi-Mode Bar Code Symbol ReadingSubsystem

Programmed Mode of System Operation No. 14 involves configuration of thesystem as follows: disabling the use of manual-trigger activation duringthe system activation phase of operation; and enabling the IR-basedObject Presence and Range Detection Subsystem 12, the narrow-area andwide-area illumination modes within the Multi-Mode IlluminationSubsystem 14, the narrow-area and wide-area image capture modes in theImage Formation and Detection Subsystem 13, and the No-Finder Mode andOmniScan Mode of the Multi-Mode Bar Code Reading Subsystem 17.

During this programmed mode of system operation, the bar code reader isidle until a user points the reader towards an object with a bar codelabel. Once the object is under the field-of-view of the bar codereader, and the object is automatically detected by the Object Presenceand Range Detection Subsystem 12, the bar code reader “wakes up” and thesystem activates the narrow-area illumination mode in the Multi-ModeIllumination Subsystem 14, the narrow-area image capture mode in theImage Formation and Detection Subsystem 13, and the No-Finder Mode ofthe Multi-Mode Bar Code Reading Subsystem 17. This causes thenarrow-area illumination array 27 to illuminate a “narrow” horizontalarea of the target object at the center of the field-of-view (FOV) ofthe bar code reader, indicating to the user where the area targeted bythe bar code reader is, and thus, enabling the user to position andalign the narrow-area illumination beam on the target bar code. Then,Subsystem 13 captures/acquires a narrow-area image which is thenprocessed by Subsystem 17 using its No-Finder Mode. If this single cycleof programmed image processing results in the successful reading of a 1Dbar code symbol, then the resulting symbol character data is sent to theInput/Output Subsystem 18 for use by the host system, and then thesystem deactivates all subsystems and resumes its sleep state ofoperation. If this cycle of programmed image processing does not producea successful read, it may nevertheless produce one or more codefragments indicative of the symbology represented in the image, (e.g.PDF 417). In this case, the system deactivates the narrow-areaillumination mode within the Multi-Mode Illumination Subsystem 14, thenarrow-area image capture mode of the Image Formation and DetectionSubsystem 13, and the No-Finder Mode of the Multi-Mode Bar Code ReadingSubsystem 17; and then, if the user is pulling the trigger switch 2C atabout this time, the system activates the wide-area illumination modewithin the Multi-Mode Illumination Subsystem 14, the wide-area imagecapture mode of the Image Formation and Detection Subsystem, and eitherthe Omniscan Mode of the Multi-Mode Bar Code Reading Subsystem 17 ifcode fragments have been found indicating a 2D code format (e.g. PDFformat code) within the image at perhaps a particular orientation. Then,the bar code reader proceeds to automatically illuminate the targetobject using wide-area illumination, capture a wide-area image of thetarget object, and invoke the Omniscan Mode of the Multi-Mode Bar CodeReading Subsystem 17. The captured wide-area image is then firstprocessed using the Omniscan Mode, using a first processing direction(e.g. at 0 degrees), and sequentially advances the Omniscan Mode ofreading at an different angular orientation (e.g. 6 possibledirections/orientations) until a single bar code symbol is successfullyread. If this single cycle of programmed decode processing (using theOmniscan Mode) results in the successful decoding of a single 1D and/or2D bar code symbol, then the resulting symbol character data is sent tothe Input/Output Subsystem 18 for use by the host system. If this cycleof programmed image processing does not produce a successful reading ofa single 1D and/or 2D bar code symbol, then the system automaticallyenables successive cycles of wide-area illumination/wide-area imagecapture/processing so long as the trigger switch 2C is being pulled, andthen until the system reads a single 1D and/or 2D bar code symbol withina captured image of the target object. Only thereafter, or when the userreleases the trigger switch 2C, the system will return to its sleep modeof operation, and wait for the next event that will trigger the systeminto active operation. In the illustrative embodiment, the defaultdecode timeout is set to 500 ms which can be simply changed byprogramming. This default decode timeout setting ensures that while thetrigger switch 2C is being pulled by the user, the Imaging-Based BarCode Symbol Reader will re-attempt reading every 500 ms (at most) untilit either succeeds or the trigger switch is manually released.

Programmable Mode of Operation No. 15:Continuously-Automatically-Triggered Multiple-Attempt 1D/2DMultiple-Read Mode Employing the Automatic Manual, ROI-Specific orOmniscan Modes of the Multi-Mode Bar Code Reading Subsystem

Programmed Mode of System Operation No. 15, typically used for testingpurposes, involves configuration of the system as follows: disabling theuse of manual-trigger activation during all phase of system operation;and enabling IR-based Object Presence and Range Detection Subsystem 12,the wide-area illumination mode in the Multi-Mode IlluminationSubsystem, 14 the wide-area image capture mode in the Image Formationand Detection Subsystem 13, and the Manual, ROI-Specific, Automatic orOmniScan Modes of the Multi-Mode Bar Code Reading Subsystem 17.

During this programmed mode of system operation, the bar code readercontinuously and sequentially illuminates a wide area of the targetobject within the field-of-view (FOV) of the bar code reader with bothfar-field and near-field wide-area illumination, captures a wide-areaimage thereof, and then processes the same using either the Manual,ROI-Specific, Automatic or Omniscan Modes of operation. If any cycle ofprogrammed image processing results in the successful reading of a 1D or2D bar code symbol (when the Manual, ROI-Specific and Automatic Modesare used), then the resulting symbol character data is sent to theInput/Output Subsystem 18 for use by the host system (i.e. typically atest measurement system). If when any cycle of programmed imageprocessing does not produce a successful read, the system automaticallyenables successive cycles of wide-area illumination/wide-areaimage-capture/processing. In the illustrative embodiment, the defaultdecode timeout is set to 500 ms which can be simply changed byprogramming. This default decode timeout setting ensures that while theobject is being detected by the bar code reader, the bar code readerwill re-attempt reading every 500 ms (at most) until it either succeedsor the object is moved away from the FOV of the bar code reader.

Diagnostic Mode of Imaging-Based Bar Code Reader Operation: ProgrammableMode of System Operation No. 16

Programmed Mode of System Operation No. 16 is a Diagnostic Mode. Anauthorized user can send a special command to the bar code reader tolaunch a Command Line Interface (CLI) with the bar code reader. When thebar code reader receives such request from the user, it sends a prompt“MTLG>” back to the user as a handshaking indication that the scanner isready to accept the user commands. The user then can enter any validcommand to the bar code reader and view the results of its execution. Tocommunicate with the reader in diagnostic mode over such communicationline as RS232, the user can use any standard communication program, suchas Windows HyperTerminal for example. This mode of operation can be usedto test/debug the newly introduced features or view/change the bar codereader configuration parameters. It can also be used to download imagesand/or a backlog of the previously decoded bar code data from the readermemory to the host computer.

Automatic (Live) Video Mode of Imaging-Based Bar Code Reader Operation:Programmable Mode of System Operation No. 17

In Programmed Mode of System Operation No. 17, automatic IR-based objectpresence detection is enabled, and the CMOS imaging array is operated inits Video Mode as illustrated in FIG. 27E. When a trigger signal isautomatically generated in response to the automatic detection of anobject in the field of view (FOV) of the system, frames of digitalimages are automatically captured by the CMOS imaging array and areprocessed subsystem 17 et al in accordance with the principles of thepresent invention. Such captured frames of digital video data can betransmitted to the host computer in real-time, along with the results ofimage-processing (i.e. symbol character data) by subsystem 17 (if suchresults are available). This mode of system operation is well suited foruse at point of sale (POS) applications, as shown in FIGS. 55B and 55C,where bar coded objects are either presented to or passed by the barcode reading system. Also, Programmed Mode of System Operation No. 17can be used in combination with any other supported imaging modes.

Second Illustrative Embodiment of Digital-Imaging Based Bar Code SymbolReading Device of the Present Invention wherein Four Distinct Modes ofIllumination are Provided

In the first illustrative embodiment described above, the Multi-modeIllumination Subsystem 14 had three primary modes of illumination: (1)narrow-area illumination mode; (2) near-field wide-area illuminationmode; and (3) far-field wide-area illumination mode.

In a second alternative embodiment of the digital-imaging based bar codesymbol reading device of the present invention shown in FIGS. 27A, 27Band 28, the Multi-Mode Illumination Subsystem 14 is modified to supportfour primary modes of illumination: (1) near-field narrow-areaillumination mode; (2) far-field narrow-area illumination mode; (3)near-field wide-area illumination mode; and (4) far-field wide-areaillumination mode. In general, these near-field and far-fieldnarrow-area illumination modes of operation are conducted during thenarrow-area image capture mode of the Multi-Mode Image Formation andDetection Subsystem 13, and are supported by a near-fieldnarrow-illumination array 27A and a far field narrow-area illuminationarray 27B illustrated in FIG. 19, and as shown in FIG. 2A1. In thesecond illustrative embodiment, each of these illumination arrays 27A,27B are realized using at least a pair of LEDs, each having acylindrical lens of appropriate focal length to focus the resultingnarrow-area (i.e. linear) illumination beam into the near-field portion24A and far-field portion 24B of the field of view of the system,respectively.

One of advantages of using a pair of independent illumination arrays toproduce narrow-area illumination fields over near and far field portionsof the FOV is that it is possible to more tightly control the productionof a relatively “narrow” or “narrowly-tapered” narrow-area illuminationfield along its widthwise dimension. For example, as shown in FIG. 26BB,during bar code menu reading applications, the near-field narrow areaillumination array 27A can be used to generate (over the near-fieldportion of the FOV) an illumination field 24A that is narrow along bothits widthwise and height-wise dimensions, to enable the user to easilyalign the illumination field (beam) with a single bar code symbol to beread from a bar code menu of one type or another, thereby avoidinginadvertent reads of two or more bar code symbols or simply the wrongbar code symbol. At the same time, the far-field narrow areaillumination array 27B can be used to generate (over the far-fieldportion of the FOV) an illumination field 24B that is sufficient widealong its widthwise dimension, to enable the user to easily readelongated bar code symbols in the far-field portion of the field of viewof the bar code reader, by simply moving the object towards the farportion of the field.

Third Illustrative Embodiment of Digital-Imaging Based Bar Code SymbolReading Device of the Present Invention

Alternatively, the imaging-based bar code symbol reading device of thepresent invention can have virtually any type of form factor that wouldsupport the reading of bar code symbols at diverse applicationenvironments. One alternative form factor for the bar code symbolreading device of the present invention is shown in FIGS. 29A through29C, wherein a portable digital-imaging based bar code symbol readingdevice of the present invention 1 ″ is shown from various perspectiveviews, while arranged in a Presentation Mode (i.e. configured inProgrammed System Mode No. 12).

The Digital Imaging-Based Bar Code Reading Device of the PresentInvention

As shown in FIG. 21, the digital imaging-based bar code symbol readingdevice of the present invention 1′, 1″ can also be realized in the formof a Digital Imaging-Based Bar Code Reading Engine 100 that can bereadily integrated into various kinds of information collection andprocessing systems. Notably, trigger switch 2C shown in FIG. 21 issymbolically represented on the housing of the engine design, and it isunderstood that this trigger switch 2C or functionally equivalent devicewill be typically integrated with the housing of the resultant systeminto which the engine is embedded so that the user can interact with andactuate the same. Such Engines according to the present invention can berealized in various shapes and sizes and be embedded within variouskinds of systems and devices requiring diverse image capture andprocessing functions as taught herein.

Illustrative Embodiment of a Wireless Bar Code-Driven Portable DataTerminal (PDT) System of the Present Invention

FIGS. 22, 23, and 24 show a Wireless Bar Code-Driven Portable DataTerminal (PDT) System 140 according to the present invention whichcomprises: a Bar Code Driven PDT 150 embodying the Digital-imaging basedBar Code Symbol Reading Engine of the present invention 100, describedherein; and a cradle-providing Base Station 155.

As shown in FIGS. 22 and 23, the Digital-imaging based Bar Code SymbolReading Engine 100 can be used to read bar code symbols on packages andthe symbol character data representative of the read bar code can beautomatically transmitted to the cradle-providing Base Station 155 byway of an RF-enabled 2-way data communication link 170. At the sametime, robust data entry and display capabilities are provided on the PDT150 to support various information based transactions that can becarried out using System 140 in diverse retail, industrial, educationaland other environments.

As shown in FIG. 23, the Wireless Bar Code Driven Portable Data TerminalSystem 140 comprises: a hand-supportable housing 151; Digital-imagingbased Bar Code Symbol Reading Engine 100 as shown in FIG. 21, anddescribed herein above, mounted within the head portion of thehand-supportable housing 151; a user control console 151A; ahigh-resolution color LCD display panel 152 and drivers mounted belowthe user control console 151A and integrated with the hand-supportablehousing, for displaying, in a real-time manner, captured images, databeing entered into the system, and graphical user interfaces (GUIs)generated by the end-user application running on the virtual machine ofthe wireless PDT; and PDT computing subsystem 180 contained within thePDT housing, for carrying out system control operations according to therequirements of the end-user application to be implemented upon thehardware and software platforms of the wireless PDT 2B of thisillustrative embodiment.

As shown in block schematic diagram of FIG. 25, a design model for theWireless Hand-Supportable Bar Code Driven Portable Data Terminal System140 shown in FIGS. 31 and 32, and its cradle-supporting Base Station 155interfaced with possible host systems 173 and/or networks 174, comprisesa number of subsystems integrated about a system bus, namely: a datatransmission circuit 156 for realizing the PDT side of theelectromagnetic-based wireless 2-way data communication link 170;program memory (e.g. DRAM) 158; non-volatile memory (e.g. SRAM) 159;Digital-imaging based Bar Code Symbol Reading Engine 100 for opticallycapturing narrow and wide area images and reading bar code symbolsrecognized therein; a manual data entry device such as amembrane-switching type keypad 160; LCD panel 152; an LCD controller161; LCD backlight brightness control circuit 162; and a systemprocessor 163 integrated with a systems bus (e.g. data, address andcontrol buses). Also, a battery power supply circuit 164 is provided forsupplying regulated power supplies to the various subsystems, atparticular voltages determined by the technology used to implement thePDT device.

As shown in FIG. 25, the Base Station 155 also comprises a number ofintegrated subsystems, namely: a data receiver circuit 165 for realizingthe base side of the electromagnetic-based wireless 2-way datacommunication link 170; a data transmission subsystem 171 including acommunication control module; a base station controller 172 (e.g.programmed microcontroller) for controlling the operations of the BaseStation 155. As shown, the data transmission subsystem 171 interfaceswith the host system 173 or network 174 by way of the USB or RS232communication interfaces, TCP/IP, AppleTalk or the like, well known inthe art. Taken together, data transmission and reception circuits 156and 165 realize the wireless electromagnetic 2-way digital datacommunication link 170 employed by the wireless PDT of the presentinvention.

Notably, Wireless Hand-Supportable Bar Code Driven Portable DataTerminal System 140, as well as the POS Digital-imaging based Bar CodeSymbol Reader 1″ shown in FIGS. 20A through 20C, each have two primarymodes of operation: (1) a hands-on mode of operation, in which the PDT150 or POS Reader 1″ is removed from its cradle and used as a bar codedriven transaction terminal or simply bar code symbol reader; and (2) ahands-free mode of operation, in which the PDT 150 or POS Reader 1″remains in its cradle-providing Base Station 155, and is used apresentation type bar code symbol reader, as required in most retailpoint-of-sale (POS) environments. Such hands-on and hands-free modes ofsystem operation are described in greater detail in copending U.S.patent application Ser. No. 10/684,273 filed on Oct. 11, 2003, andincorporated herein by reference in its entirety.

In such hands-on and hands-free kinds of applications, the triggerswitch 2C employed in the digital-imaging based bar code symbol readingdevice of the present invention can be readily modified, and augmentedwith a suitable stand-detection mechanism, which is designed toautomatically configure and invoke the PDT 150 and its Engine 100 intoits Presentation Mode (i.e. System Mode of Operation No. 12) or othersuitable system mode when the PDT is placed in its Base Station 155 asshown in FIG. 24. Then when the PDT 150 is picked up and removed fromits cradling supporting Base Station 155 as shown in FIGS. 22 and 23,the trigger switch 2C and stand-detection mechanism, arrangement can bearranged so as to automatically configure and invoke the PDT 150 and itsEngine 100 into a suitable hands-on supporting mode of system operationto enable hands-on mode of operation.

Similarly, the trigger switch 2C employed in the POS Digital Imaging BarCode Symbol Reading Device 1″ can be readily modified, and augmentedwith stand-detection mechanism, which is designed to automaticallyconfigure and invoke the POS Reader 1″ into its Presentation Mode (i.e.System Mode of Operation No. 12) or other suitable system mode, when theReader 1″ is resting on a countertop surface, as shown in FIGS. 20A and20B. Then when the POS Reader 1″ is picked up off the countertopsurface, for use in its hands-on mode of operation, the trigger switch2C and stand-detection mechanism, arrangement will automaticallyconfigure and invoke Reader 1″ into a suitable hands-on supporting modeof system operation, as shown in FIG. 20C. In such embodiments, thestand-detection mechanism can employ a physical contact switch, or IRobject sensing switch, which is actuated then the device is picked upoff the countertop surface. Such mechanisms will become apparent in viewof the teachings disclosed herein.

Hand-Supportable Digital-Imaging Based Bar Code Symbol Reading DeviceEmploying Automatic Light Exposure Measurement and Illumination ControlSubsystem and a Software-Based Illumination Metering Program

In the system shown in FIGS. 1 through 25, automatic illuminationcontrol is provided by precise controlling the duration of LEDillumination during exposure, thereby capturing well-illuminated images.However, in some circumstances, greater degrees of illumination controlmay be required and the method shown in FIGS. 26 through 26B may behelpful.

In FIGS. 26 through 26B, an enhanced auto-illumination control scheme isembodied within the hand-held image-processing bar code reader of thepresent invention. According to this alternative illumination controlscheme, the illumination level of a captured image is first (i.e.initially) determined by measuring the actual light illumination levelat a central portion of the image detection array, and then computing anappropriate illumination duration level based on this measurement. Then,after an image is captured using this initial illumination level, asoftware illumination metering program is used to analyze the spatialintensity distribution of the captured image and determine if a newillumination duration should be calculated for use in subsequent imageillumination and capture operations, to provide more fine-tuned images.If the light/illumination level represented in a captured digital imageis determined to be acceptable by the software-based illuminationmetering program, then the program automatically (i) calculates acorrected illumination duration (count) for use by the Automatic LightExposure Measurement and Illumination Control Subsystem, and (ii)provides the corrected illumination duration thereto. Then the AutomaticLight Exposure Measurement and Illumination Control Subsystem uses thiscorrected illumination duration to control the illumination delivered tothe field of view (FOV) during the next object illumination and imagecapturing operation supported by the system. By using this enhancedauto-illumination control method, the image-processing based bar codesymbol reader of the present invention is provided additionalflexibility in its ability to capture fine-tuned images in real-timehaving the optimal illumination levels.

FIG. 26 schematically illustrates the hand-supportable digital-imagingbased bar code symbol reading device of the present invention, wherein aSoftware-Based Illumination Metering Program is used to help theAutomatic Light Exposure Measurement and Illumination Control Subsystemcontrol the operation of the LED-Based Multi-Mode IlluminationSubsystem. FIG. 26A illustrates in greater detail this enhanced methodof automatic illumination control, namely how the current illuminationduration (determined by the Automatic Light Exposure Measurement andIllumination Control Subsystem) is automatically over-written by theillumination duration computed by a software-implemented,image-processing-based Illumination Metering Program carried out withinthe Image-Processing Based Bar Code Symbol Reading Subsystem. Thisover-written illumination duration is then used by the Automatic LightExposure Measurement and Illumination Control Subsystem to control theamount of LED illumination produced and delivered to the CMOS imagedetection array during the next image frame captured by the system, inaccordance with this Enhanced Auto-Illumination Control Scheme of thepresent invention.

FIG. 26B is a flow chart setting forth the steps involved in carryingout the enhanced auto-illumination control scheme/method illustrated inFIG. 26A. As indicated at Block in FIG. 26B, the first step of themethod involves using the Automatic Light Exposure Measurement andIllumination Control Subsystem to automatically (i) measure theillumination level at a particular (e.g. central) portion of field ofview of the CMOS image sensing array and (ii) determine the illuminationduration (i.e. time count) necessary to achieve a desired spatialintensity in the captured image.

As indicated at Block B in FIG. 26B, the Automatic Light ExposureMeasurement and Illumination Control Subsystem uses thiscomputed/determined illumination duration to drive the LED-basedillumination subsystem and capture a digital image of the object withinthe field of view of the Image Formation and Detection Subsystem.

As indicated at Block C in FIG. 26B, the Image-Processing Bar CodeReading Subsystem (e.g. image processor) analyzes and measures inreal-time the spatial intensity distribution of the captured image anddetermines whether or not a corrected illumination duration is requiredor desired when capturing the next or subsequent frames of image data,during the current or subsequent image capture cycle.

As indicated at Block D in FIG. 26B, within the Automatic Light ExposureMeasurement and Illumination Control Subsystem, the previouslydetermined illumination duration (used to captured the analyzed image)is automatically over-written with the corrected illumination duration(count) determined at Block C above.

As indicated at Block E in FIG. 26B, the Automatic Light ExposureMeasurement and Illumination Control Subsystem then uses the correctedillumination duration (computed by the software-based IlluminationMetering Program) to drive the LED-based Illumination Subsystem andcapture a subsequent digital image of the illuminated object within thefield of view of the system.

As indicated in FIG. 26B, the steps indicated at Blocks C through E canbe repeated a number of times in a recursive manner, each image capturecycle, to finally produce a digital image having an optimized spatialintensity level with excellent image contrast.

Adaptive Method of Controlling Object Illumination and Image CapturingOperations within the Multi-Mode Image-Processing Based Bar Code SymbolReader System of the Illustrative Embodiment of the Present Invention

In FIGS. 6D through 6E2, the Global Exposure Control Method of thepresent invention was described in connection with the automaticillumination measurement and control subsystem of the present invention.Also, in FIGS. 26 through 26B, an Enhanced Auto-Illumination ControlScheme was described for use in connection with the automaticillumination measurement and control subsystem of the present invention,wherein software-based illumination metering is employed. However, whilethese techniques provide numerous advantages and benefits, there aremany end-user applications and operating environments in which it wouldbe beneficial for the system of the present invention to provide ahigher degree of adaptability to ambient illumination levels havinggreat dynamic range. Such challenges are addressed by the adaptivecontrol method set forth in FIGS. 27A and 27B, wherein objectillumination and image capturing operations are dynamically controlledwithin the multi-mode image-processing based bar code symbol readersystem of the present invention, by analyzing the exposure quality ofcaptured digital images and reconfiguring system control parametersbased on the results of such exposure quality analysis. FIGS. 27Cthrough 27E illustrate the three basic modes of operation of the CMOSimage sensing array employed in the illustrative embodiment, (i.e.Single Frame Shutter Mode, Rolling Shutter Mode and Video Mode), whichare dynamically and automatically controlled within the system inaccordance with the adaptive system control method of the presentinvention.

The details of the adaptive system control method of the presentinvention will be generally described below in the content of amulti-mode image-capturing and processing system with bar code readingcapabilities.

As indicated at Block A in FIG. 27A, upon the occurrence of thepower-up” event within the system (i.e. STEP 0), the following threebasic operations are performed:

(a) Initialize System using set default System Control Parameters (SCP),such as:

(1) shutter mode of the image sensing array (e.g. Single Frame ShutterMode illustrated in FIG. 27C, and Rolling Shutter Mode illustrated inFIG. 27D);

(2) electronic gain of image sensing array;

(3) programmable exposure time for each block of pixels in the imagesensing array;

(4) illumination mode (e.g., off, continuous and strobe/flash);

(5) automatic illumination control (e.g. ON or OFF);

(6) illumination field type (e.g. narrow-area near-field illumination,wide-area far-field illumination, narrow-area field of illumination, andwide-area field of illumination);

(7) image capture mode (e.g. narrow-area image capture, and wide-areaimage capture);

(8) image capture control (e.g. single frame, video frames);

(9) image processing mode; and

(10) automatic object detection mode (e.g. ON or OFF).

(b) Reset the SCP Reconfiguration (SCPR) flag to the value “FALSE”.

(c) Calculate and Set Exposure Quality Threshold (EQT) Parameters orcriteria (e.g. brightness level, image saturation, etc.)

Then, at Block B, upon the occurrence of the “trigger signal” eventwithin the system, the following control process is executed within thesystem as generally described below:

STEP 1: If the system needs to be reconfigured (i.e. SCPR flag=TRUE),then configure the system using new SCPs. Otherwise, maintain the systemusing current SCPs.

STEP 2: Illuminate an object using the method of illumination indicatedby the Illumination Mode parameter, and capture a digital image thereof.

STEP 3: Analyze the captured digital image for exposure quality.

In connection with the practice of the present invention, exposurequality is a quantitative measure of the quality of the imagebrightness. Setting system control parameters (SCPs), such as the typeand the intensity of the object illumination, value of the image sensorgain, and the type and the value of the image sensor exposureparameters, will affect the image brightness. The value of the exposurequality can be presented in the range from 0 to 100, with 0 being anextremely poor exposure that would generally be fruitless to process (incases when the image is too dark or too bright), and 100 being anexcellent exposure. It is almost always worthwhile to process an imagewhen the value of the exposure quality is close to 100. Conversely, itis almost never worthwhile to process an image when the value of theexposure quality is as low as 0. As will be explained in greater detailbelow, for the latter case where the computed exposure quality is as lowas 0, the system control parameters (SCPs) will need to be dynamicallyre-evaluated and set to the proper values in accordance with theprinciples of the present invention.

STEP 4: If the exposure quality measured in STEP 3 does not satisfy theExposure Quality Threshold (EQT) parameters set in STEP 0, thencalculate new SCPs for the system and set the SCPR flag to TRUEindicating that system must be reconfigured prior to acquiring a digitalimage during the next image acquisition cycle. Otherwise, maintain thecurrent SCPs for the system.STEP 5: If barcode decoding is required in the application at hand, thenattempt to process the digital image and decode a barcode symbolrepresented therein.STEP 6: If barcode decoding fails, or if barcode decoding was notrequired but the exposure quality did not satisfy the Exposure QualityThreshold parameters, go to STEP 1.STEP 7: If barcode decoding succeeded, then transmit results to the hostsystem.STEP 8: If necessary, transmit the digital image to the host system, orstore the image in internal memory.STEP 9: EXIT.

Notably, the system control process is intended for practice during any“system mode” of any digital image capture and processing system,including the bar code symbol reader of the illustrative embodiments,with its various modes of system operation described in FIGS. 17A and17B. Also as this control method is generally described in FIGS. 27A and27B, it is understood that its principles will be used to modifyparticular system control processes that might be supported in anyparticular digital image capture and processing system. The salientfeatures of this adaptive control method involve using (i) automatedreal-time analysis of the exposure quality of captured digital images,and (ii) automated reconfiguring of system control parameters(particularly illumination and exposure control parameters) based on theresults of such exposure quality analysis, so as to achieve improvedsystem functionality and/or performance in diverse environments.

At this juncture, it will be helpful to describe how the adaptivecontrol process of FIGS. 27A and 27B can be practiced in systems havingdiverse modes of “system operation” as well as “subsystem operation”, asin the case of the multi-mode image-processing bar code reading systemof the illustrative embodiment. For illustration purposes, it willhelpful to consider this bar code symbol reading system when it isconfigured with system control parameters (SCPs) associated with theProgrammed Modes of System Operation Nos. 8 through 12, described inFIGS. 17A and 17B. In any of these Programmed Modes of System Operation,in response to a “trigger event” (automatically or manually generated),the system will be able to automatically generate, (i) a narrow-areafield of illumination during the narrow-area image capture mode of thesystem; and if the system fails to read a bar code symbol reading duringthis mode, then the system will automatically generate (ii) a wide-areafield of illumination during its wide-area image capture mode. In thecontext of such modes of system operation, the adaptive control methoddescribed in FIGS. 27A and 27B will now be described below as anillustrative embodiment of the control method. It is understood thatthere are many ways to practice this control method, and in eachinstance, a system with different operation or behavior can and willtypically result.

For illustrative purposes, two (2) different modes of system operationwill be considered below in detail to demonstrate the breathe ofapplicability of the adaptive system control method of the presentinvention.

Case 1: System Operated in Programmed Mode of System Operation No. 8:Automatically-Triggered Multi-Attempt 1D/2D Single-Read Mode Employingthe No-Finder and Manual and/or Automatic Modes of Operation

In the first example, upon “power up” of the system, at STEP 0, thesystem control parameters (SCPs) will be configured to implement theselected Programmed Mode of System Operation. For System Mode No. 8, theSCPs would be initially configured as follows:

(1) the shutter mode parameter will be set to the “single frame shuttermode” (illustrated in FIG. 27C, for implementing the GlobalIllumination/Exposure Method of the present invention described in FIGS.6D through 6E2);

(2) the electronic gain of the image sensor will be set to a defaultvalue determined during factory calibration;

(3) the exposure time for blocks of image sensor pixels will be set to adefault determined during factory calibration;

(4) the illumination mode parameter will be set to “flash/strobe”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “narrow-area field”;

(7) the image capture mode parameter will be set to “narrow-area imagecapture”;

(8) the image capture control parameter will be set to “single frame”;

(9) the image processing mode will be set, for example, to a defaultvalue; and

(10) the automatic object detection mode will be set to ON.

Also, the SCPR flag will be set to its FALSE value.

Upon the occurrence of a trigger signal from the system (e.g. generatedby automatic object detection by IR object presence and range detectionsubsystem in System Mode No. 8-10, or by manually pulling the activationswitch in System Modes 11-12), the system will reconfigure itself onlyif the SCPR flag is TRUE; otherwise, the system will maintain itscurrent SCPs. During the first pass through STEP 1, the SCPR flag willbe false, and therefore the system will maintain its SCPs at theirdefault settings.

Then at STEP 2 in FIG. 27A, the object will be illuminated within anarrow-field of LED-based illumination produced by the illuminationsubsystem, and a narrow-area digital image will be captured by the imageformation and detection subsystem.

At STEP 3 in FIG. 27B, the narrow-area digital image will be analyzedfor exposure quality (e.g. brightness level, saturation etc.).

At STEP 4; if the measured/calculated exposure quality values do notsatisfy the exposure quality threshold (EQT) parameters, then the systemrecalculates new SCPs and sets the SCPR flag to TRUE, indicating thatthe system must be reconfigured prior to acquiring a digital imageduring the next image acquisition cycle. Otherwise, the SCPs aremaintained by the system.

At STEP 5, the system attempts to read a 1D bar code symbol in thecaptured narrow-area image.

At STEP 6, if the system is incapable of reading the bar code symbol(i.e. decoding fails), then the system returns to STEP 1 andreconfigures its SCPs if the SCPR flag is set to TRUE (i.e. indicativeof unsatisfactory exposure quality in the captured image). In the caseof reconfiguration, the system might reset the SCPs as follows:

(1) the shutter mode parameter—set to “Rolling Shutter Mode” illustratedin FIG. 27D;

(2) the electronic gain of the image sensor—set to the value calculatedduring STEP 4;

(3) the exposure time for blocks of image sensor pixels—set to a valuesdetermined during STEP 4;

(4) the illumination mode parameter—set to “off”;

(5) the automatic illumination control parameter will be set to “OFF”;

(6) the illumination field type will be set to “narrow-area field”;

(7) the image capture mode parameter will be set to “narrow-area imagecapture”;

(8) the image capture control parameter will be set to “single frame”;

(9) the image processing mode will be set to the default value; and

(10) the automatic object detection mode will be set to ON.

Then at STEPS 2-4, the system captures a second narrow-area image usingambient illumination and the image sensing array configured in itsrolling shutter mode (illustrated in FIG. 27D), and recalculatesExposure Quality Threshold Parameters and if the exposure quality doesnot satisfy the current Exposure Quality Threshold Parameters, then thesystem calculates new SCPs (including switching to the wide-area imagecapture mode, and possibly) and sets the SCPR flag to TRUE. Otherwise,the system maintains the SCPs, and proceeds to attempt to decode a barcode symbol in the narrow-area digital image captured using ambientillumination.

If at STEPS 5 and 6, bar code decoding is successful, then at STEP 7 thesystem transmits the results (i.e. symbol character data) to the hostthe system, and/or at STEP 8, transmits the captured digital image tothe host system for storage or processing, or to internal memory forstorage, and then exits the control process at STEP 9.

If at STEPS 5 and 6 in Block B2 in FIG. 27B, bar code decoding fails,then the system returns to STEP 1, and reconfigures for wide-areaillumination and image capture. If while operating in its narrow-areaillumination and image capture modes of operation, the image captured bythe system had an “exposure quality” which did not satisfy the ExposureQuality Threshold Parameters and indicated that the light exposure wasstill too bright and saturated, and the recalculated SCPs requiredswitching to a new level of electronic gain, to reduce the exposurebrightness level of the analyzed image, then at STEP 1 the SCPs arereconfigured using the SCPs previously computed at STEP 4. Thereafter,the object is illuminated with ambient illumination and captured at STEP2, and at STEP 3, the captured image is analyzed for exposure quality,as described above. At STEP 4, the exposure quality measured in STEP 3is compared with the Exposure Quality Threshold parameters, and if itdoes not satisfy these parameters, then new SCPs are calculated and theSCPR flag is set to TRUE. Otherwise the system maintains the SCPs usingcurrent SCPs. At STEPs 5 and 6, bar code decoding is attempted, and ifit is successful, then at STEPS 7 and 8, symbol character data and imagedata are transmitted to the host system, and then the system exits thecontrol process at STEP 9. If bar code decoding fails, then the systemreturns to STEP 1 to repeat STEPS within Blocks B1 and B2 of FIGS. 27Aand 27B, provided that the trigger signal is still persistence. Duringthis second pass through the control loop of Blocks B1 and B2, thesystem will reconfigure the system as determined by the exposure qualityanalysis performed at STEP B1, and calculations performed at STEP 4.Notably, such calculations could involve calculating new SCPs thatrequire activating system modes using wide-area LED illumination duringthe wide-area image capture mode, that is, if analysis of the facts mayrequire, according to the adaptive control process of the presentinvention. Recycling this control loop will reoccur as long as a barcode symbol has not been successfully read, and the trigger signal ispersistently generated.

CASE 2: Programmable Mode of System Operation No. 17: Live Video Mode ofDigital-Imaging Based Bar Code Reader Operation

In this second example, upon “power up” of the system, at STEP 0, thesystem control parameters (SCPs) will be configured to implement theselected Programmed Mode of System Operation. For System Mode No. 17,wherein the digital imaging system of the present invention might beused as a POS-based imager for reading bar code symbols, the SCPs wouldbe initially configured as follows:

(1) the shutter mode parameter will be set to the “Video Mode”(illustrated in FIG. 2E);

(2) the electronic gain of the image sensor will be set to a defaultvalue determined during factory calibration;

(3) the exposure time for blocks of image sensor pixels will be set to adefault determined during factory calibration;

(4) the illumination mode parameter will be set to “continuous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “wide-area field”;

(7) the image capture mode parameter will be set to “wide-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set, for example, to a defaultvalue; and

(10) the automatic object detection mode will be set to ON.

Also, the SCPR flag will be set to its FALSE value.

Upon the occurrence of a trigger signal from the system (i.e. generatedby automatic object detection by IR object presence and range detectionsubsystem), the system will reconfigure itself only if the SCPR flag isTRUE; otherwise, the system will maintain its current SCPs. During thefirst pass through STEP 1, the SCPR flag will be FALSE, and thereforethe system will maintain its SCPs at their default settings.

Then at STEP 2 in FIG. 27A, the object will be continuously illuminatedwithin a wide-field of LED-based illumination produced by theillumination subsystem, and a wide-area digital image will be capturedby the image formation and detection subsystem, while the CMOS imagesensing array is operated in its Video Mode of operation.

At STEP 3 in FIG. 27B, the wide-area digital image will be analyzed forexposure quality (e.g. brightness level, saturation etc.).

At STEP 4, if the measured/calculated exposure quality values do notsatisfy the exposure quality threshold (EQT) parameters, then the systemrecalculates new SCPs and sets the SCPR flag to TRUE, indicating thatthe system must be reconfigured prior to acquiring a digital imageduring the next image acquisition cycle while the CMOS sensing array isoperated in its Video Mode. Otherwise, the SCPs are maintained by thesystem.

At STEP 5, the system attempts to read a 1D bar code symbol in thecaptured wide-area digital image.

At STEP 6, if the system is incapable of reading the bar code symbol(i.e. decoding fails), then the system returns to STEP 1 andreconfigures its SCPs if the SCPR flag is set to TRUE (i.e. indicativeof unsatisfactory exposure quality in the captured image). In the caseof reconfiguration, the system might reset the SCPs as follows:

(1) the shutter mode parameter—set to “Video Mode” illustrated in FIG.27E;

(2) the electronic gain of the image sensor—set to the value calculatedduring STEP 4;

(3) the exposure time for blocks of image sensor pixels—set to a valuesdetermined during STEP 4;

(4) the illumination mode parameter—set to “continous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “wide-area field”;

(7) the image capture mode parameter will be set to “wide-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set to the default value; and

(10) the automatic object detection mode will be set to ON.

Then at STEPS 2-4, the system captures a second wide-area image usingcontinuous LED illumination and the image sensing array configured inits Video Mode (illustrated in FIG. 27E), and recalculates ExposureQuality Threshold Parameters and if the exposure quality does notsatisfy the current Exposure Quality Threshold Parameters, then thesystem calculates new SCPs (including switching to the wide-area imagecapture mode, and possibly) and sets the SCPR flag to TRUE. Otherwise,the system maintains the SCPs, and proceeds to attempt to decode a barcode symbol in the narrow-area digital image captured using continuousLED illumination.

If at STEPS 5 and 6, bar code decoding is successful, then at STEP 7 thesystem transmits the results (i.e. symbol character data) to the hostthe system, and/or at STEP 8, transmits the captured digital image tothe host system for storage or processing, or to internal memory forstorage, and then exits the control process at STEP 9.

If at STEPS 5 and 6 in Block B2 in FIG. 27B, bar code decoding fails,then the system returns to STEP 1, and reconfigures for wide-areaillumination and image capture. If while operating in its wide-areaillumination and image capture modes of operation, the image captured bythe system had an “exposure quality” which did not satisfy the ExposureQuality Threshold Parameters and indicated that the light exposure wasstill too bright and saturated, and the recalculated SCPs requiredswitching to a new level of electronic gain (or illumination control),to reduce exposure brightness, then at STEP 1 the SCPs are reconfiguredusing the SCPs previously computed at STEP 4. Thereafter, the object isilluminated with ambient illumination and captured at STEP 2, and atSTEP 3, the captured image is analyzed for exposure quality, asdescribed above. At STEP 4, the exposure quality measured in STEP 3 iscompared with the Exposure Quality Threshold parameters, and if it doesnot satisfy these parameters, then new SCPs are calculated and the SCPRflag is set to TRUE. Otherwise the system maintains the SCPs usingcurrent SCPs. At STEPs 5 and 6, bar code decoding is attempted, and ifit is successful, then at STEPS 7 and 8, symbol character data and imagedata are transmitted to the host system, and then the system exits thecontrol process at STEP 9. If bar code decoding fails, then the systemreturns to STEP 1 to repeat STEPS within Blocks B1 and B2 of FIGS. 27Aand 27B, provided that the automatic trigger signal is still persistent(indicative that the object is still within the field of view of thedigital imager). During this second pass through the control loop ofBlocks B1 and B2, the system will reconfigure the system as determinedby the exposure quality analysis performed at STEP B1, and calculationsperformed at STEP 4. Notably, such calculations could involvecalculating new SCPs that require adjusting illumination and/or imagesensing array parameters during the wide-area image capture mode, thatis, as the analysis of the facts may require, according to the adaptivecontrol process of the present invention. Recycling this control loopwill reoccur as long as a bar code symbol has not been successfullyread, and the automatic trigger signal is persistently generated by theIR-based automatic object detecting subsystem.

The adaptive control method of the present invention described above canbe applied to any of the System Modes of Operation specified in FIGS.17A and 17B, as well as to any system modes not specifying specifiedherein. In each such illustrative embodiment, the particular SCPs thatwill be set in a given system will depend on the structure of andfunctionalities supported by the system. In each such system, there willbe SCPs that relate to the image sensing array of the system, and SCPsthat relate to the illumination subsystem thereof, as well as SCPs thatrelate to other aspects of the system. The subsystems with the systemmay have a single or multiple modes of suboperation, depending on thenature of the system design. In accordance with the principles of thepresent invention, each system will involve the using (i) automatedreal-time analysis of the exposure quality of captured digital imagesand (ii) automated reconfiguring of system control parameters(particularly illumination and exposure control parameters) based on theresults of such exposure quality analysis, so as to achieve improvedsystem functionality and/or performance in diverse environments.

First Illustrative Embodiment of the Hand-Supportable DigitalImage-Processing Based Bar Code Symbol Reader of the Present Invention,Employing an Image Cropping Zone (ICZ) Framing Pattern, and an AutomaticPost-Image Capture Cropping Method

The hand-held image-processing bar code symbol readers describedhereinabove employs a narrow-area illumination beam which provides avisual indication to the user on the vicinity of the narrow-area fieldof view of the system. However, while operating the system during itswide-area image capture modes of operation, it may be desirable inparticular applications to provide a visual indication of the wide-areafield of view of the system. While various techniques are known in theart to provide such targeting/marking functions, a novel method ofoperation will be described below with reference to FIGS. 28 through 30.

FIG. 28 shows a hand-supportable image-processing based bar code symbolreader of the present invention 1′ employing an image cropping zone(ICZ) framing pattern, and an automatic post-image capture croppingmethod involving the projection of the ICZ within the field of view(FOV) of the reader and onto a targeted object to be imaged duringobject illumination and imaging operations. As shown in FIG. 29, thishand-supportable image-processing based bar code symbol reader 1′ issimilar to the designs described above in FIGS. 1B through 14, exceptthat it includes one or more image cropping zone (ICZ) illuminationframing source(s) operated under the control of the System ControlSubsystem. Preferably, these ICZ framing sources are realized using fourrelative bright LEDs indicating the corners of the ICZ in the FOV, whichwill be cropped during post-image capture operations. Alternatively, theICZ framing source could be a VLD that produces a visible laser diodetransmitted through a light diffractive element (e.g. volumetransmission hologram) to produce four beamlets indicating the cornersof the ICZ, or bright lines that appear in the captured image. The ICZframe created by such corner points or border lines (formed thereby) canbe located using edge-tracing algorithms, and then the corners of theROI can be identified from the traced border lines.

Referring to FIG. 30, the ICZ Framing and Post-Image Capture CroppingProcess of the present invention will now be described.

As indicated at Block A in FIG. 30, the first step of the methodinvolves projecting an ICZ framing pattern within the FOV of the systemduring wide-area illumination and image capturing operations.

As indicated at Block B in FIG. 30, the second step of the methodinvolves the user visually aligning the object to be imaged within theICZ framing pattern (however it might be realized).

As indicated at Block C in FIG. 30, the third step of the methodinvolves the Image Formation and Detection Subsystem and the ImageCapture and Buffering Subsystem forming and capturing the wide-areaimage of the entire FOV of the system, which embraces (i.e. spatiallyencompasses) the ICZ framing pattern aligned about the object to beimaged.

As indicated at Block D in FIG. 30, the fourth step of the methodinvolves using an automatic software-based image cropping algorithm,implemented within the Image-Processing Bar Code Reading Subsystem, toautomatically crop the pixels within the spatial boundaries defined bythe ICZ, from those pixels contained in the entire wide-area image framecaptured at Block B. Due to the fact that image distortion may exist inthe captured image of the ICZ framing pattern, the cropped rectangularimage may partially contain the ICZ framing pattern itself and someneighboring pixels that may fall outside the ICZ framing pattern.

As indicated at Block E in FIG. 30, the fifth step of the methodinvolves the Image-Processing Bar Code Reading Subsystem automaticallydecode processing the image represented by the cropped image pixels inthe ICZ so as to read a 1D or 2D bar code symbol graphically representedtherein.

As indicated at Block F in FIG. 30, the sixth step of the methodinvolves the Image-Processing Bar Code Reading Subsystem outputting (tothe host system) the symbol character data representative of the decodedbar code symbol.

Notably, in prior art FOV targeting methods, the user captures an imagethat is somewhat coinciding with what he intended to capture. Thissituation is analogous to a low-cost point-and-shoot camera, wherein thefield of view of the viewfinder and camera lens only substantiallycoincide with each other. In the proposed scheme employing theabove-described ICZ framing and post-processing pixel cropping method,the user captures an image that is exactly what s/he framed with the ICZframing pattern. The advantage of this system to prior art FOV methodsis analogous to the advantage of a SLR camera over a point-and-shootcamera, namely: accuracy and reliability.

Another advantage of using the ICZ framing and post-processing pixelcropping method is that the ICZ framing pattern (however realized) doesnot have to coincide with the field of view of the Image Formation AndDetection Subsystem. The ICZ framing pattern also does not have to haveparallel optical axes. The only basic requirement of this method is thatthe ICZ framing pattern fall within the field of view (FOV) of the ImageFormation And Detection Subsystem, along the working distance of thesystem.

However, one may design the ICZ framing pattern and the optical axisangle of the system such that when the ICZ framing pattern does not fallcompletely inside the camera's field of view (i.e. the ICZ framingpattern does not fall within the complete acquired image), this visuallyimplies to the user that the captured and cropped image is outside thedepth of focus of the imaging system. Thus, the imager can provide avisual or audio feedback to the user so that he may repeat the imageacquisition process at a more appropriate distance.

Second Illustrative Embodiment of the Hand-Supportable DigitalImage-Processing Based Bar Code Symbol Reader of the Present InventionEmploying an Image Cropping Pattern (ICP), and an Automatic Post-ImageCapture Cropping Method

Referring to FIGS. 31 through 37B, another novel method of operationwill be described for use in a hand-held digital image-processing barcode symbol reader operating during its wide-area image capture modes ofoperation.

As shown in FIG. 31, during object illumination and wide-area imagecapture modes of operations, the hand-supportable image-processing basedbar code symbol reader 1″ is provided with the capacity to generate andproject a visible illumination-based Image Cropping Pattern (ICP) 200within the field of view (FOV) of the reader. During these modes of barcode reader operation, the operator will align the visibly projected ICPonto the object (or graphical indicia) to be imaged so that thegraphical indicia generally falls within, or is framed by the outerboundaries covered by the ICP. The object to be imaged may be perfectlyplanar in geometry, or it may have a particular degree of surfacecurvature. The angle of the object surface may also be inclined withrespect to the bar code symbol reader, which may produce “keystone” typeeffects during the projection process. In either event, during objectillumination and image capture operations, the operator will thenproceed to use the reader to illuminate the object using its multi-modeillumination subsystem 14, and capture an image of the graphical indiciaand the ICP aligned therewith using the multi-mode image formation anddetection subsystem 13. After the image has been captured and bufferedwithin the image capturing and buffering system 16, it is thentransferred to the ICP locating/finding module 201 for image processingthat locates the features and elements of the ICP and determinestherefrom an image region (containing the graphical indicia) to becropped for subsequent processing. The coordinate/pixel location of theICP elements relative to each other in the captured image are thenanalyzed using computational analysis to determine whether or not thecaptured image has been distorted due to rotation or tilting of theobject relative to the bar code reader during image capture operations.If this condition is indicated, then the cropped image will betransferred to the image perspective correction and scaling module 202for several stages of image processing. The first stage of imageprocessing will typically involve correction of image “perspective”,which is where the cropped image requires processing to correct forperspective distortion cause by rotation or tilting of the object duringimaging. Perspective distortion is also know as keystone effects. Theperspective/tilt corrected image is then cropped. Thereafter, thecropped digital image is processed to scale (i.e. magnify or minify) thecorrected digital image so that it has a predetermined pixel size (e.g.N×M) optimized for image processing by the image processing based barcode symbol reading module 17. Such digital image scaling, prior todecode processing, enables most conventional image-based decodingprocessing algorithms to operate on the digital images. The details ofthis bar code reading method of the present invention will be describedin greater detail herein, after the system architecture of the bar codesymbol reader is described below.

In most respects, the digital image-processing based bar code symbolreader 1″ shown in FIG. 31 is very similar to the system 1 shown inFIGS. 1B through 14, with the exception of a few additionalsubcomponents indicated below.

As shown in FIG. 32, the digital-imaging based bar code symbol readingdevice depicted in FIG. 31 comprises the following system components: aMulti-Mode Area-Type Image Formation and Detection (i.e. Camera)Subsystem 13 having image formation (camera) optics for producing afield of view (FOV) upon an object to be imaged and a CMOS or likearea-type image sensing array 22 for detecting imaged light reflectedoff the object during illumination operations in either (i) anarrow-area image capture mode in which a few central rows of pixels onthe image sensing array are enabled, or (ii) a wide-area image capturemode in which substantially all rows of the image sensing array areenabled; a Multi-Mode LED-Based Illumination Subsystem 14 for producingnarrow and wide area fields of narrow-band illumination within the FOVof the Image Formation And Detection Subsystem 13 during narrow and widearea modes of image capture, respectively, so that only lighttransmitted from the Multi-Mode Illumination Subsystem 14 and reflectedfrom the illuminated object and transmitted through a narrow-bandtransmission-type optical filter realized within the hand-supportablehousing (i.e. using a red-wavelength high-pass reflecting window filterelement disposed at the light transmission aperture thereof and alow-pass filter before the image sensor) is detected by the image sensorand all other components of ambient light are substantially rejected; anImage Cropping Pattern Generator 203 for generating a visibleillumination-based Image Cropping Pattern (ICP) 200 projected within thefield of view (FOV) of the Multi-Mode Area-type Image Formation andDetection Subsystem 13; an IR-based object presence and range detectionsubsystem 12 for producing an IR-based object detection field within theFOV of the Image Formation and Detection Subsystem 13: an AutomaticLight Exposure Measurement and Illumination Control Subsystem 15 formeasuring illumination levels in the FOV and controlling the operationof the LED-Based Multi-Mode Illumination Subsystem 14; an ImageCapturing and Buffering Subsystem for capturing and buffering 2-D imagesdetected by the Image Formation and Detection Subsystem 13; an ImageProcessing and Cropped Image Locating Module 201 for processing capturedand buffered images to locate the image region corresponding to theregion defined by the Image Cropping Pattern (ICP) 200; an ImagePerspective Correction and Scaling Module 202 for correcting theperspective of the cropped image region and scaling the corrected imageto a predetermined (i.e. fixed) pixel image size suitable fordecode-processing; (8) a Multi-mode Image-Processing Based Bar CodeSymbol Reading Subsystem 17 for processing cropped and scaled imagesgenerated by the Image Perspective and Scaling Module 202 and reading 1Dand 2D bar code symbols represented, and (9) an Input/Output Subsystem18 for outputting processed image data and the like to an external hostsystem or other information receiving or responding device, in whicheach said subsystem component is integrated about a System ControlSubsystem 19, as shown.

In general, there are many possible ways of realizing the Image CroppingPattern Generator 203 employed in the system of FIG. 31. In FIGS. 33Athrough 34D5, several refractive-based designs are disclosed forgenerating an image cropping pattern (ICP) 200, from a single two-dotpattern, to a more complex four dot pattern. While the four dot ICP is apreferred pattern, in some applications, the two dot pattern may besuitable for the requirements at hand where 1D bar code symbols areprimarily employed. Also, as shown in FIG. 35, light diffractivetechnology (e.g. volume holograms, computer generated holograms CGHs,etc) can be used in conjunction with a VLD and a light focusing lens togenerate an image cropping pattern (ICP) having diverse characteristics.It is appropriate at this juncture to describe these various embodimentsfor the Image Cropping Pattern Generator of the present invention.

In FIG. 33A, a first illustrative embodiment of the VLD-based ImageCropping Pattern Generator 203A is shown comprising: a VLD 205 locatedat the symmetrical center of the focal plane of a pair of flat-convexlenses 206A and 206B arranged before the VLD 205, and capable ofgenerating and projecting a two (2) dot image cropping pattern (ICP) 200within the field of view of the of the Multi-Mode Area-type ImageFormation and Detection Subsystem 13. In FIGS. 33B and 33C, a compositeray-tracing diagram is provided for the VLD-based Image Cropping PatternGenerator depicted in FIG. 33A. As shown, the pair of flat-convex lenses206A and 206B focus naturally diverging light rays from the VLD 205 intotwo substantially parallel beams of laser illumination which to producea two (2) dot image cropping pattern (ICP) 200 within the field of view(FOV) of the Multi-Mode Area-type Image Formation and DetectionSubsystem. Notably, the distance between the two spots of illuminationin the ICP is a function of distance from the pair of lenses 206A and206B. FIG. 33D1 through 33D5 are simulated images of the two dot ImageCropping Pattern produced by the ICP Generator 203A of FIG. 33A, atdistances of 40 mm, 80 mm, 120 mm, 160 mm and 200 mm, respectively, fromits pair of flat-convex lenses, within the field of view of theMulti-Mode Area-type Image Formation and Detection Subsystem.

In FIG. 34A, a second illustrative embodiment of the VLD-based ImageCropping Pattern Generator of the present invention 203B is showncomprising: a VLD 206 located at the focus of a biconical lens 207(having a biconical surface and a cylindrical surface) arranged beforethe VLD 206, and four flat-convex lenses 208A, 208B, 208C and 208Darranged in four corners. This optical assembly is capable of generatingand projecting a four (4) dot image cropping pattern (ICP) within thefield of view of the of the Multi-Mode Area-type Image Formation andDetection Subsystem. FIGS. 34B and 34C show a composite ray-tracingdiagram for the third illustrative embodiment of the VLD-based ImageCropping Pattern Generator depicted in FIG. 34A. As shown, the biconicallens 207 enlarges naturally diverging light rays from the VLD 206 in thecylindrical direction (but not the other) and thereafter, the fourflat-convex lenses 208A through 208D focus the enlarged laser light beamto generate a four parallel beams of laser illumination which form afour (4) dot image cropping pattern (ICP) within the field of view ofthe Multi-Mode Area-type Image Formation and Detection Subsystem. Thespacing between the four dots of illumination in the ICP is a functionof distance from the flat-convex lens 208A through 208D. FIGS. 34D1through 34D5 are simulated images of the linear Image Cropping Patternproduced by the ICP Generator of FIG. 34A, at distance of 40 mm, 80 mm,120 mm, 160 mm and 200 mm, respectively, from its flat-convex lens,within the field of view of the Multi-Mode Image Formation and DetectionSubsystem 13.

In FIG. 35, a third illustrative embodiment of the VLD-based ImageCropping Pattern Generator of the present invention 203C is showncomprising: a VLD 210, focusing optics 211, and a light diffractiveoptical element (DOE) 212 (e.g. volume holographic optical element)forming an ultra-compact optical assembly. This optical assembly iscapable of generating and projecting a four (4) dot image croppingpattern (ICP) within the field of view of the of the Multi-ModeArea-type Image Formation and Detection Subsystem, similar to thatgenerated using the refractive optics based device shown in FIG. 35A.

Hand-Supportable Digital Image-Processing Based Bar Code Symbol Readerof the Present Invention Employing a Second Method of Digital ImageCapture and Processing Using an Image Cropping Pattern (ICP) andAutomatic Post-Image Capture Cropping and Processing Methods

Referring to FIGS. 36 and 37, the second illustrative embodiment of themethod of digital image capture and processing will now be described inconnection with the bar code symbol reader illustrated in FIGS. 31 and32.

As indicated at Block A in FIG. 37, the bar code symbol reader duringwide-area imaging operations, projects an illumination-based ImageCropping Pattern (ICP) 200 within the field of view (FOV) of the system,as schematically illustrated in FIG. 36.

As indicated at Block B in FIG. 37, the operator aligns an object to beimaged within the projected Image Cropping Pattern (ICP) of the system.

As indicated at Block C in FIG. 37, during the generation of the ImageCropping Pattern, the bar code symbol reader captures a wide-areadigital image of the entire FOV of the system.

As indicated at Block D in FIG. 37, the bar code symbol reader usesmodule 201 to process the captured digital image and locate/findfeatures and elements (e.g. illumination spots) associated with theImage Capture Pattern 200 within the captured digital image. As shown inthe schematic representation of FIG. 37, the clusters of pixelsindicated by reference characters (a, b, c, d) represent the fourillumination spots (i.e. dots) associated with the Image CroppingPattern (ICP) projected in the FOV. The coordinates associated with suchfeatures and elements of the ICP would be located/found using module 201during this step of the image processing method of the presentinvention.

As indicated at Block E in FIG. 37, the bar code symbol reader usesmodule 201 to analyze the coordinates of the located image features (a,b, c, d) and determine the geometrical relationships among certain ofsuch features (e.g. if the vertices of the ICP have been distortedduring projection and imaging due to tilt angles, rotation of theobject, etc), and reconstruct an undistorted image cropping pattern(ICP) independent of the object tilt angle (or perspective) computedtherefrom. Module 210 supports real-time computational analysis toanalyze the coordinates of the pixel locations of the ICP elementsrelative to each other in the captured image, and determine whether ornot the captured image has been distorted due to rotation or tilting ofthe object relative to the bar code reader during image captureoperations. If this condition is indicated, then the digital image willbe transferred to the image perspective correction and scaling module202 for several stages of image processing. The first stage of imageprocessing performed by module 202 will typically involve correction ofimage “perspective”, which is where the cropped image requiresprocessing to correct for perspective distortion cause by rotation ortilting of the object during imaging. Perspective distortion is alsoknown as keystone effects.

As indicated at Block F in FIG. 37, the bar code symbol reader usesmodule 202 to crops a set of pixels from the corrected digital image,that corresponds to the ICP projected in the FOV of the system.

As indicated at Block G in FIG. 37, the bar code symbol reader usesmodule 202 to carry out a digital zoom algorithm to process the croppedand perspective-corrected ICP region and produce a scaled digital imagehaving a predetermined pixel size independent of object distance. Thisstep involves processing the cropped perspective-corrected image so asto scale (i.e. magnify or minify) the same so that it has apredetermined pixel size (e.g. N×M) optimized for image processing bythe image processing based bar code symbol reading module 17. Such imagescaling, prior to decode processing, enables conventional image-baseddecoding processing algorithms to operate on the digital images ofconstant magnitude.

As indicated at Block H in FIG. 37, the bar code symbol reader transmitsthe scaled perspective-corrected digital image to the decode processingmodule 17 (and optionally, a visual display).

As indicated at Block I in FIG. 37, the bar code symbol readerdecode-processes the scaled digital image so as to read 1D or 2D barcode symbols represented therein and generate symbol character datarepresentative of a decoded bar code symbol.

As indicated at Block J in FIG. 37, the input/output subsystem 18 of thebar code symbol reader outputs the generated symbol character data to ahost system.

Method of and Apparatus for Modifying Features and Functions within anImage-Processing-Based Bar Code Symbol Reading System in Accordance withPrinciples of the Present Invention

Referring now to FIGS. 10 through 13M and 31 through 32C2, the method ofand apparatus for modifying features and functions within animage-processing-based bar code symbol reading system will now bedescribed in accordance with principles of the present invention.

As indicated in Block A of FIG. 31, the first step involves the “systemdesigner” of the Imaging-based Bar Code Symbol Reading System (having amulti-tier software architecture), determining which “features” of thesystem (implemented by Tasks in the Application Layer) and whichfunctions within any given feature, will be modifiable by persons other(than the designer and the manufacturer, e.g. VARs, end-users, customerset al.) without having detailed knowledge of the system's hardwareplatform, its communication interfaces with the outside environment, orits user interfaces. This step by the system designer establishesconstraints on system modification by others, yet provides degrees offreedom on how the system can be modified to meet custom requirements ofend-user applications.

As indicated in Block B of FIG. 31, based on such determinations, thesystem designer designs and makes the image-processing based bar codereading system of the present invention, wherein persons other than thesystem designer are permitted to modify the system features andfunctionalities specified by the system designer in Block A.

As indicated in Block C of FIG. 31, persons other than the systemdesigner, then determine which modifiable system features andfunctionalities they wish to modify to meet a particular set of end-userapplication requirements.

As indicated in Block D of FIG. 31, for each modifiable feature/functionto be modified in the system, persons other than the system designerdevelop a “plug-in module” (“software object”) to implement the systemfeature, and thereafter they install the plug-in module within with theApplication Layer of the system.

As indicated in Block E of FIG. 31, persons other than the systemdesigner reconfigure the functions associated with each modifiablefeature within the system by either sending communications from a hostsystem, or by reading function-reconfiguring bar code symbols.

Having provided a brief overview on the system feature/functionalitymodification methodology of the present invention, it is now in order todescribe these method steps in greater detail referring to FIG. 10, andFIGS. 31 through 33C2, in particular.

In the illustrative embodiment, each plug-in module, stored within thePlug-In and Configuration File Library, shown in FIG. 10, consists ofthe set of software libraries (object modules) and configuration files.They can be downloaded to the Image-Processing Based Bar Code SymbolReading System from an external host system, such as Plug-in DevelopmentPlatform implemented on a host PC, and using various standard orproprietary communication protocols to communicate with the OS layer ofthe system. In the Image-Processing Based Bar Code Symbol ReadingSystem, this operation is performed by the Metroset task or User CommandManager (see Software Block Diagram) upon reception of the appropriatecommand from the host system. Once the download is complete, the plug-infiles are stored in the file system of the Image-Processing Based BarCode Symbol Reading System.

The management of all plug-in modules is performed by the Plug-inController shown in FIG. 10. The Plug-in Controller can performoperations such as: load (install) plug-in module from the file systemto the executable memory of the Image-Processing Based Bar Code SymbolReading System and perform dynamic linking of the plug-in libraries withthe Application; unload (uninstall) the plug-in module; provideexecutable address of the plug-in module to the Application; provideadditional information about the plug-in module to the Application, suchas the rules of the plug-in engagement as described in the plug-inconfiguration file.

Any task of the Image-Processing Based Bar Code Symbol Reading Systemcan request information from the Plug-in Controller about a plug-inmodule and/or request an operation on it. For a set of predeterminedfeatures, the Application tasks can request the Plug-in Controller tocheck the availability of a third-party plug-in module, and if suchmodule is available, install it and provide its executable address aswell as the rules of the plug-in engagement. The tasks then can executeit either instead or along with the “standard” module that implementsthe particular feature. The rules of engagement of the plug-in module,i.e. determination whether the plug-in module should be executed as areplacement or a complimentary module to the “standard” module, can beunique to the particular feature. The rules can also specify whether thecomplimentary plug-in module should be executed first, prior to the“standard” module, or after. Moreover, the plug-in module, if executedfirst, can indicate back to the device whether the “standard” moduleshould also be called or not, thus, allowing the alteration of thedevice's behavior. The programming interfaces are predefined for thefeatures that allow the plug-in functionality, thus, enabling thethird-parties to develop their own software for the device.

Consider, as a first and very simple example, the Image PreProcessingPlug-in described in FIG. 32A. The original equipment manufacturer ofthe Image-Processing Based Bar Code Symbol Reading System supplies thesystem's “standard” Image PreProcessing Module, which is normallyexecuted by the Main Task at Block D in FIG. 32, after the systemacquires an image at Block C. In accordance with the principles of thepresent invention, the customer can provide its own image preprocessingsoftware as a plug-in module to the multi-tier software-based system.The plug-in can be described in a “Image PreprocessingPlug-inConfiguration File”, having a format, for example, as expressed below:

// Image Preprocessing Configuration File //type param library functionIMGPREPR: libimgprepr_plugin.so.1−>PluginImgprepr IMGPREPR_PROGMD:libimgprepr_plugin.so.1−>PluginImgpreprProgmdIMGPREPR_PROGBC: libimgprepr_plugin.so.1−>PluginImgpreprProgbc

The block-diagram set forth in FIG. 32A illustrates the logic of theImage Preprocessing plug-in.

Consider, as a second, more interesting example, the Image Processingand Barcode Decoding Plug-in described in FIG. 32B. The originalequipment manufacturer of the Image-Processing Based Bar Code SymbolReading System supplies the system's “standard” Image Processing andBarcode Decoding Module, which is normally executed by the Main Taskafter the system acquires an image, as indicated in FIG. 32. Inaccordance with the principles of the present invention, the customercan provide its own image processing and barcode decoding software as aplug-in module to the multi-tier software-based system. The plug-in canbe described in a “Image Processing and Barcode Decoding Plug-inConfiguration File”, having a format, for example, as expressed below:

// Decode Plug-in Configuration File //type param library functionDECODE: 0x02: libdecode_plugin.so.1 −>PluginDecodewherein “DECODE” is a keyword identifying the image processing andbarcode decoding plug-in; wherein “0x02” is the value identifying theplug-in's rules of engagement; wherein “libdecode_plugin.so.1” is thename of the plug-in library in the device's file system; and wherein“PluginDecode” is the name of the plug-in function that implements thecustomer-specific image processing and barcode decoding functionality.The individual bits of the value “param”, which is used as the valueindicating the rules of this particular plug-in's engagement, can havethe following meaning:The value “0x02”, therefore, means that the customer plug-in is acomplimentary, not a replacement, module (the bit “0” is 0), and itshould be executed after the execution of the standard module (bit “1”is 1).

The block-diagram set forth in FIG. 32B illustrates the logic of theImage Processing and Barcode Decoding plug-in.

Consider, as a third example, the Image Processing and Barcode DecodingPlug-in described in

bit meaning 0 0 = compliment standard; 1 = replace standard 1 (ifbit0==0) 0 = call before standard func; 1 = call after standard func 2reserved . . . . . .FIG. 32C1. The original equipment manufacturer of the Image-ProcessingBased Bar Code Symbol Reading System supplies the system's “standard”Image Processing and Barcode Decoding Module, which is normally executedby the Main Task after the system acquires an image as indicated in FIG.32. In accordance with the principles of the present invention, thecustomer can provide its own image processing and barcode decodingsoftware as a plug-in module to the multi-tier software-based system.The plug-in can be described in a “Image Processing and Barcode DecodingPlug-in Configuration File”, having a format, for example, as expressedbelow:

// Data Formatting Plug-in Configuration File //type param libraryfunction PREFORMAT: libformat_plugin.so.1−>PluginPreformatFORMAT_PROGMD: libformat_plugin.so.1−>PluginFormatProgmd FORMAT_PROGBC:libformat_plugin.so.1−>PluginFormatProgbc

The block-diagram set forth in FIG. 32C1 illustrates the logic of theData Formatting Procedure plug-in.

The Plug-Ins described above provide a few examples of the many kinds ofplug-ins (objects) that be developed so that allowed features andfunctionalities of the system can be modified by persons other than thesystem designer, in accordance with the principles of the presentinvention. Other system features and functionalities for which Plug-inmodules can be developed and installed within the Image-Processing BasedBar Code Symbol Reading System include, but are not limited to, controlover functions supported and performed by the following systems: theIR-based Object Presence and Range Detection Subsystem 12; theMulti-Mode Area-type Image Formation and Detection (i.e. camera)

Subsystem 13; the Multi-Mode LED-Based Illumination Subsystem 14; theAutomatic Light Exposure Measurement and Illumination Control Subsystem15; the Image Capturing and Buffering Subsystem 16; the Multi-ModeImage-Processing Bar Code Symbol Reading Subsystem 17; the Input/OutputSubsystem 18; the manually-actuatable trigger switch 2C; the System ModeConfiguration Parameter Table 70; the System Control Subsystem 18; andany other subsystems which may be integrated within the Image-ProcessingBased Bar Code Symbol Reading System.

Having described the structure and function of Plug-In Modules that canbe created by persons other than the OEM system designer, it is now inorder to describe an illustrative embodiment of the Plug-In DevelopmentPlatform of the present invention with reference to FIGS. 10 and 11.

In the illustrative embodiment, the system designer/OEM of the system(e.g. Metrologic Focus™1690 Image-Processing Bar Code Reader) willprovide the plug-in developer with a CD that contains, for example, thefollowing software tools:

Arm Linux Toolchain for Linux PC

This directory contains the Arm Linux cross-compiling toolchain packagefor IBM-compatible Linux PC.

Arm Linux. Toolchain for Cygwin

This directory contains the Arm Linux cross-compiling toolchain packagefor IBM-compatible Windows PC. The Cygwin software must be installedprior to the usage of this cross-compiling toolchain.

Plug-in Samples

This directory contains sample plug-in development projects. The plug-insoftware must be compiled on the IBM-compatible Linux PC using the ArmLinux Toolchain for Linux PC or on Windows PC with installed Cygwinsoftware using Arm Linux Toolchain for Cygwin.FWZ MakerThis directory contains the installation package of the program FWZMaker for Windows PC. This program is used to build the FWZ-files fordownloading into the Focus 1690 scanner.Latest Metrologic® Focus™ SoftwareThis directory contains the FWZ-file with the latest Metrologic® Focus™scanner software.

The first step of the plug-in software development process involvesconfiguring the plug-in developer platform by installing the above toolson the host/developer computer system. The next step involves installingsystem software onto the Image-Processing Bar Code Reader, via the hostplug-in developer platform using a communications cable between thecommunication ports of the system and the plug-in developer computershown in FIGS. 10 and 11.

To develop plug-in software, a corresponding shared library can bedeveloped on the plug-in developer platform (i.e. the Linux PC) or inWindows Cygwin, and then the proper plug-in configuration file. Theplug-in configuration file is then be loaded to the “/usr” directory inthe case of developing a plug-in for example, an image capture andreceiving device, such as Metrologic's Focus™ image-processing bar codereader. In this illustrative embodiment, each line of the plug-inconfiguration file contains information about a plug-in function in thefollowing format:

plug-in type: parameter: filename->function_name

wherein plug-in type is one of the supported plug-in type keywords,followed by the field separator “:”;

wherein parameter is a number (could be decimal or hex, if preceded with0x), having a specific and unique meaning for some plug-in functions.The parameter is also called a “call-mode”, for it can provide somespecific information on how the plug-in should be called. The parameteris not required and can be omitted. If specified, the parameter must befollowed by the field separator “:”;wherein filename is the name of the shared library, followed by thefilename separator “->”. The filename can contain a full-path to thelibrary. If the path is omitted, the library is assumed to be located ineither “/usr/local/lib” or “/usr/lib/” directory in the Focus scanner.It is therefore important to make sure that the shared library is loadedto the correct directory in the Focus scanner, as specified by theplug-in configuration file; andwherein function_name is the name of the corresponding plug-in Cfunction.

Notably, that the configuration file can also contain single-lineC-style comments.

It is within the discretion of the plug-in developer to decide whichplug-in functions (of those supported by the system designer) should beincluded in the plug-in module (i.e. “object”). Once the shared libraryis built and configuration file is prepared on the plug-in developmentplatform (illustrated in FIGS. 10 and 11), the plug-in developer canthen generate the FWZ file and include the configuration file and theshared library in it using FWZ Maker program on the Windows PC.Thereafter, the FWZ file can be downloaded to Metrologic's Focus™Image-processing bar code reader using, for example, Metrologic'sMetroset program's Flash Utility tool.

In the case of installing plug-in software for Metrologic's Focus™Image-processing bar code reader, it is recommended not to use dynamicmemory allocation and have static buffers rather than allocating themdynamically. As far as the filesystem is concerned, if necessary tostore data in a file, then the locations such as “/usr/” and“/usr/local” are recommended for storing data in non-volatile Flashmemory; the “/tmp” directory can be used to store data in RAM.

Programming Barcodes and Programming Modes

In the illustrative embodiment, configuration of image-processing barcode reader of the present invention can be changed via scanning specialprogramming barcodes, or by sending equivalent data to the reader fromthe host computer (i.e. plug-in development computer). Programmingbarcodes are usually Code 128 symbols with the Fn3 codeword.

When scanning a programming barcode, the reader may or may not be in itsso-called programming mode. When the reader is not in its programmingmode, the effect of the programming barcode is supposed to be immediate.On the other hand, when the reader is in its programming mode, theeffect of all the programming barcodes read during the programming modeshould occur at the time when the reader exits the programming mode.

There is a special set of programming barcodes reserved for the plug-insoftware configuration purposes. These barcodes have at least 4 datacharacters, and the first three data characters are “990”. It isrecommended (but not required) that the Decode Plug-in use programmingbarcodes having 6 characters long, starting with “9900xx”. It isrecommended (but not required) that the Image Preprocessing Plug-in useprogramming barcodes having 6 characters long, starting with “9901xx”.It is recommended (but not required) that the Formatting Plug-in useprogramming barcodes having 6 characters long, starting with “9902xx”.

Once a plug-in module has been developed in accordance with theprinciples of the present invention, the plug-in can be uninstalled bysimply downloading an empty plug-in configuration file. For example, touninstall a Decode plug-in, download an empty “decode.plugin” file intothe “/usr” directory of the file system within the OS layer, shown inFIG. 10.

Details about the Decode Plug-in of the Illustrative Embodiment

The purpose of the Decode Plug-in is to provide a replacement or acomplimentary barcode decoding software to the standard Focus barcodedecoding. The Decode Plug-in can have the following plug-in functions:

DECODE; DECODE_ENABLE2D; DECODE_PROGMD; DECODE_PROGBC.

DECODE Plug-in Function

This function is called to perform a barcode decoding from the givenimage in memory. Image is represented in memory as a two-dimensionalarray of 8-bit pixels. The first pixel of the array represents theupper-left corner of the image.

Function Prototype:

int /* Return: number of decoded barcodes; negative if error */(*PLUGIN_DECODE)( void *p_image, /* Input: pointer to the image */ intsize_x, /* Input: number of columns */ int size_y, /* Input: number ofrows */ int pitch, /* Input: row size, in bytes */ DECODE_RESULT*p_decode_results, /* Output: decode results */ int max_decodes, /*Input: maximum decode results allowed */ int *p_cancel_flag); /* Input:if not NULL, pointer to the cancel flag */Note that p_decode_results points to the location in memory where theDecode plug-in function should store one or more results of barcodedecoding (if of course the plug-in successfully decodes one or morebarcodes in the given image) in the form of the array of DECODE_RESULTstructures. The maximum number of allowed decode results (i.e. the sizeof the array) is given in max_decodes. The plug-in must return thenumber of successfully decoded barcodes (i.e. the number of populatedelements in the array p_decode_results), or a negative number in case ofan error.

If p_cancel_flag is not NULL, it points to the integer flag (called“Cancel flag”) that indicates whether the decoding process shouldcontinue or should stop as soon as possible. If the flag is 0, thedecoding process can continue. If the flag is not zero, the decodingprocess must stop as soon as possible. The reason for aborting thedecoding process could be, for example, a time out. It is recommended tocheck the Cancel flag often enough so that the latency on aborting thedecoding process would be as short as possible.

Note that the Cancel flag is not the only way the Decoding plug-in (orany plug-in for that matter) can be aborted. Depending on thecircumstances, the system can decide to abruptly kill the thread, inwhich the Decoding plug-in is running, at any time.

Structure DECODE_RESULT

The structure DECODE_RESULT has the following format:

#define MAX_DECODED_DATA_LEN 4096 #define MAX_SUPPL_DATA_LEN 128 typedefstruct { int x; int y; } BC_POINT; typedef struct { BC_POINT BCPts[4];/* Coordinates of the 4 corners of the barcode */ } BC_BOUNDS;The order of the array elements (i.e. corners) in BC_BOUNDS structure isas follows:0-top left1-top right2-bottom right3-bottom left

0 - top left 1 - top right 2 - bottom right 3 - bottom left typedefstruct { int decode_result_index; /* index of the decode result,starting from 0 */ int num_decode_results;  /* total number of decoderesults  minus 1 (i.e. 0-based) */ char SymId[32]; /* the symbologyidentifier characters */ int Symbology; /* the decoded barcode'ssymbology identifier number */ int Modifier; /* additional informationof the decoded barcode */ int DecId; /* reserved */ int Class; /* 1 for1D, 2 for 2D */ unsigned char Data[MAX_DECODED_DATA_LEN]; /* decodeddata - may contain null chars */ int Length; /* number of characters inthe decoded barcode */ unsigned char SupplData[MAX_SUPPL_DATA_LEN]; /*supplemental code's data */ int SupplLength; /* number of characters inthe supplemental code's data */ unsigned charLinkedData[MAX_DECODED_DATA_LEN]; int LinkedLength; BC_BOUNDS C_Bounds;/* Bounds for the primary barcode*/ BC_BOUNDS S_Bounds; /* Bounds forthe supplemental barcode */ } DECODE_RESULT;The first two members of each populated DECODE_RESULT structure mustcontain a zero-based index of the decode result in the array (i.e. thefirst decode result must have decode_result_index=0, the second musthave decode_result_index=1, and so on) and the zero-based total numberof successfully decoded barcodes (which should equal the returned valueminus 1).

The Symld member of DECODE_RESULT structure can have a string of up to31 null-terminated characters describing the barcode symbology. It isused for informational purposes only. The following values arerecommended for some known barcode symbologies.

“AZTEC” Aztec “CBR” Codabar “CBK_A” Codablock A “CBK_F” Codablock F“C11” Code 11 “C128” Code 128 “C39” Code 39 “C93” Code 93 “DM”Datamatrix “S2O5” Straight 2 of 5 “I2O5” Interleaved 2 of 5 “MC”MexiCode “PDF” Code PDF “QR” Code QR “RSS-E” Code RSS-E “RSS-EST” CodeRSS-EST “RSS14-LIM” Code RSS Limited “RSS14” Code RSS-14 “RSS14-ST” CodeRSS-ST “UPC” Code UPC/EANThe Symbology member of the DECODE_RESULT structure must contain the idof the decoded barcode symbology. The following symbology ids must beused for the known barcode symbologies:

MBCD_SYM_C128 Code 128 MBCD_SYM_C39 Code 39 MBCD_SYM_ITF Interleaved 2of 5 MBCD_SYM_C93 Code 93 MBCD_SYM_CBR Codabar MBCD_SYM_UPC Code UPC/EANMBCD_SYM_TPEN Telepen MBCD_SYM_RSS14 Code RSS-14 MBCD_SYM_RSSE CodeRSS-E MBCD_SYM_RSSL Code RSS Limited MBCD_SYM_MTF Matrix 2 of 5MBCD_SYM_ATF Airline 2 of 5 MBCD_SYM_STF Straight 2 of 5 MBCD_SYM_MPLYMSI Plessey MBCD_SYM_C11 Code 11 MBCD_SYM_PDF Code PDF MBCD_SYM_PNPostnet MBCD_SYM_DM Datamatrix MBCD_SYM_MC MaxiCode MBCD_SYM_QR Code QRMBCD_SYM_AZ Aztec MBCD_SYM_MICROPDF MicroPDF MBCD_SYM_CBLA 1Codablock AMBCD_SYM_CBLF Codablock F MBCD_SYM_UNKNOWN User-defined symbology

The Modifier member of the DECODE_RESULT structure contains additionalinformation about the decoded barcode. The values of the Modifier areusually bit-combinatory. They are unique for different symbologies, andmany symbologies don't use it all. If the Modifier is not used, itshould be set to 0. For some symbologies that support Modifier, thepossible values are presented below.

Coupon Modifier MBCD_MODIFIER_COUP Coupon code UPC Modifier Bit FlagConstants MBCD_MODIFIER_UPCA UPC-A MBCD_MODIFIER_UPCE UPC-EMBCD_MODIFIER_EAN8 EAN-8 MBCD_MODIFIER_EAN13 EAN-13 MBCD_MODIFIER_SUPP22-digit supplement MBCD_MODIFIER_SUPP5 5 digit supplement Code 128Modifier Bit Flag Constants MBCD_MODIFIER_C128A Code 128 with A startcharacter MBCD_MODIFIER_C128B Code 128 with B start characterMBCD_MODIFIER_C128C Code 128 with C start character, but not an EAN128MBCD_MODIFIER_EAN128 EAN-128 MBCD_MODIFIER_PROG Programming label(overrides all other considerations) MBCD_MODIFIER_AIM_AI Code 128 withAIM Application indicator Code 39 Modifier Bits Flag ConstandsMBCD_MODIFIER_ITPHARM Italian Pharmaceutical Codabar Modifier Bit FlagConstants MBCD_MODIFIER_CBR_DF Double-Field Codabar POSTNET iModifierBit Flag Constants MBCD_MODIFIER_PN POSTNET MBCD_MODIFIER_JAP Japan PostMBCD_MODIFIER_AUS Australia Post MBCD_MODIFIER_PLANET PLANETMBCD_MODIFIER_RM Royal Mail MBCD_MODIFIER_KIX KIX CodeMBCD_MODIFIER_UPU57 UPU (57-bar) MBCD_MODIFIER_UPU75 UPU (75-bar)Datamatrix Modifier Bit Flag Constants MBCD_MODIFIER_ECC140 ECC 000-140MBCD_MODIFIER_ECC200 ECC 200 MBCD_MODIFIER_FNC15 ECC 200, FNC1 in firstor fifth position MBCD_MODIFIER_FNC26 ECC 200, FNC1 in second or sixthposition MBCD_MODIFIER_ECI ECC 200, ECI protocol implementedMBCD_MODIFIER_FNC15_ECI ECC 200, FNC1 in first or fifth position, ECIprotocol MBCD_MODIFIER_FNC26_ECI ECC 200, FNC1 in second or sixthposition, ECI protocol MBCD_MODIFIER_RP Reader Programming Code MaxiCodeModifier Bit Flag Constants MBCD_MODIFIER_MZ Symbol in Mode 0MBCD_MODIFIER_M45 Symbol in Mode 4 or 5 MBCD_MODIFIER_M23 Symbol in Mode2 or 3 MBCD_MODIFIER_M45_ECI Symbol in Mode 4 or 5, ECI protocolMBCD_MODIFIER_M23_ECI Symbol in Mode 2 or 3, ECI protocolThe DecId member of the DECODE_RESULT structure is currently not usedand should be set to 0.

The Class member of the DECODE_RESULT structure must be set either to 1or 2. If the decoded barcode is a regular linear barcode, such as UPC,Code 39, RSS, etc., the Class should be set to 1. If the decoded barcodeis a 2D symbology, such as Code PDF, Datamatrix, Aztec, MaxiCode, etc.,the Class should be set to 2.

The Data member of the DECODE_RESULT structure contains the decodeddata. It can contain up to MAX_DECODED_DATA_LEN bytes of data.

The Length member of the DECODE_RESULT structure specifies how manybytes of decoded data are stored in Data.

The SupplData member of the DECODE_RESULT structure contains the datadecoded in a supplemental part of the barcode, such as a coupon. It cancontain up to MAX_DECODED_DATA_LEN bytes of data.

The SupplLength member of the DECODE_RESULT structure specifies how manybytes of decoded data are stored in SupplData.

The LinkedData member of the DECODE_RESULT structure contains the datadecoded in a secondary part of the composite barcode, such as RSS/PDFcomposite. It can contain up to MAX_DECODED_DATA_LEN bytes of data.

The LinkedLength member of the DECODE_RESULT structure specifies howmany bytes of decoded data are stored in LinkedData.

The C_Bounds and S_Bounds members of the DECODE_RESULT structure arecurrently not used.

DECODE Plug-in Call-Mode

The DECODE plug-in can have the following call-mode values:

bit value

0<--0=compliment standard; 1=replace standard

1<--(if bit0==0) 0=call before standard function; 1=call after standardfunction

The default call-mode value is 0, meaning that by default, the DECODEplug-in is considered a complimentary module to standard Focus barcodedecoding software and is executed before the standard function. In thiscase, the standard function will be called only if the result returnedfrom DECODE plug-in is not negative and less than max_decodes.

DECODE_ENABLE2D Plug-in Function

This function is called to notify the plug-in that the scanner enters amode of operation in which decoding of 2D symbologies (such as PDF417,Datamatrix, etc.) should be either allowed or disallowed. By default,the decoding of 2D symbologies is allowed.

Function Prototype:

void

(*PLUGIN_ENABLE2D)(int enable); /* Input: 0=disable; 1=enable */

For example, when the Focus scanner is configured to work in linear mode(as opposed to omni-directional mode), the decoding of 2D symbologies isdisallowed.

DECODE_PROGMD Plug-in Function

This function is called to notify the plug-in that the scanner enters aprogramming mode.

Function Prototype:

void

(*PLUGIN_PROGMD)(int progmd); /* Input: 1=enter; 0=normal exit;(−1)=abort */

DECODE_PROGBC Plug-in Function

This function is called to notify the plug-in that the scanner justscanned a programming barcode, which can be used by the plug-in for itsconfiguration purposes.

Function Prototype:

int /* Return: 1 if successful; 0 if barcode is invalid; negative iferror */ (*PLUGIN_PROGBC)(unsigned char *bufferptr,  int data_len);Details About the Image Preprocessing Plug-In of the IllustrativeEmbodiment of the Present Invention

The purpose of the Image Preprocessing Plug-in is to allow the plug-into perform some special image processing right after the imageacquisition and prior to the barcode decoding. The Image PreprocessingPlug-in can have the following plug-in functions:

IMGPREPR; IMGPREPR_PROGMD; IMGPREPR_PROGBC.

IMGPREPR Plug-in Function

This function is called to perform an image preprocessing. The image isrepresented in memory as a two-dimensional array of 8-bit pixels. Thefirst pixel of the array represents the upper-left corner of the image.

Function Prototype:

int /* Return: 1 if preprocessing is done; 0 if not; neg. if error */(*PLUGIN_IMGPREPR)( void *p_image, /* Input: pointer to the image */ intsize_x, /* Input: number of columns */ int size_y, /* Input: number ofrows */ int pitch, /* Input: row size, in bytes */ void **pp_new_image,/* Output: pointer to the new image */ int *p_new_size_x, /* Output: newnumber of columns */ int *p_new_size_y, /* Output: new number of rows */int *p_new_pitch); /* Output: new row size, in bytes */

If the IMGPREPR plug-in function is successful, it should return 1 andstore the address of the new image in the location in memory pointed toby pp_new_image. The new image dimensions should be stored in thelocations pointed to by p_new_size_x, p_new_size_y, and p_new_pitch.

If the preprocessing is not performed for whatever reason, the IMGPREPRplug-in function must return 0.

The negative returned value indicates an error.

IMGPREPR_PROGMD Plug-in Function

This function is called to notify the plug-in that the scanner enters aprogramming mode.

Function prototype:

void

(*PLUGIN_PROGMD)(int progmd); /* Input: 1=enter; 0=normal exit;(−1)=abort */

IMGPREPR_PROGBC Plug-in Function

This function is called to notify the plug-in that the scanner justscanned a programming barcode, which can be used by the plug-in for itsconfiguration purposes.

Function Prototype:

int /* Return: 1 if successful; 0 if barcode is invalid; negative iferror */ (*PLUGIN_PROGBC)(unsigned char *bufferptr,  int data_len);Details about Formatting Plug-in of the Illustrative Embodiment

The purpose of the Formatting Plug-in is to provide a replacement orcomplimentary software to the standard Focus data formatting software.The Formatting Plug-in configuration file must have the name“format.plugin” and loaded in the “/usr” directory in the Focus scanner.

The Formatting Plug-in can currently have the following plug-infunctions:

PREFORMAT; FORMAT_PROGMD; FORMAT_PROGBC.

PREFORMAT Plug-in Function

This function is called to perform a necessary transformation of thedecoded barcode data prior to the data being actually formatted and sentout.

Function Prototype:

int /* Return: 1 if preformat is done; 0 if not; neg. if error */(*PLUGIN_PREFORMAT)( DECODE_RESULT *decode_results, /* Input: decoderesults */ DECODE_RESULT *new_decode_results); /* Output: preformatteddecode results */

If the PREFORMAT plug-in function is successful, it should return 1 andstore the new decode result in the location in memory pointed tonew_decode_results.

If the preformatting is not performed for whatever reason, the PREFORMATplug-in function must return 0.

The negative returned value indicates an error.

For the details about the DECODE_RESULT structure, please refer to thesection DECODE Plug-in Function.

FORMAT_PROGMD Plug-in Function

This function is called to notify the plug-in that the scanner enters aprogramming mode.

Function prototype:

void

(*PLUGIN_PROGMD)(int progmd); /* Input: 1=enter; 0=normal exit;(−1)=abort */

FORMAT_PROGBC Plug-in Function

This function is called to notify the plug-in that the scanner justscanned a programming barcode, which can be used by the plug-in for itsconfiguration purposes.

Function Prototype:

int /* Return: 1 if successful; 0 if barcode is invalid; negative iferror */ (*PLUGIN_PROGBC)(unsigned char *bufferptr,  int data_len);

The method of system feature/functionality modification described abovecan be practiced in diverse application environments which are notlimited to image-processing based bar code symbol reading systemsdescribed hereinabove. In general, any image capture and processingsystem or device that supports an application software layer and atleast an image capture mechanism and an image processing mechanism wouldbe suitable for the practice of the present invention. Thus,image-capturing cell phones, digital cameras, video cameras, andportable or mobile computing terminals and portable data terminals(PDTs) are all suitable systems in which the present invention can bepracticed.

Also, it is understood that the application layer of theimage-processing bar code symbol reading system of the presentinvention, illustrated in FIG. 10, with the above-described facilitiesfor modifying system features and functionalities using the plug-indevelopment techniques described above, can be ported over to execute onconventional mobile computing devices, PDAs, pocket personal computers(PCs), and other portable devices supporting image capture andprocessing functions, and being provided with suitable user andcommunication interfaces.

The Image Capture and Processing System of the present inventiondescribed above can be implemented on various hardware computingplatforms such as Palm®, PocketPC®, MobilePC®, JVM®, etc. equipped withCMOS sensors, trigger switches etc. In such illustrative embodiments,the 3-tier system software architecture of the present invention can bereadily modified by replacing the low-tier Linux OS (described herein)with any operating system (OS), such as Palm, PocketPC, Apple OSX, etc.Furthermore, provided that the mid-tier SCORE subsystem describedhereinabove supports a specific hardware platform equipped with an imagesensor, trigger switch of one form or another etc., and that the same(or similar) top-tier “Bar Code Symbol Reading System” Application iscompiled for that platform, any universal (mobile) computing device canbe transformed into an Image Acquisition and Processing System havingthe bar code symbol reading functionalities of the system shown in FIGS.1 through 33C2, and described in detail hereinabove. In such alternativeembodiments of the present invention, third-party customers can bepermitted to write their own software plug-ins to enhance or modify thebehavior of the Image Acquisition and Processing Device, realized on theuniversal mobile computing platform, without any required knowledge ofunderlying hardware platform, communication protocols and/or userinterfaces.

Digital Image Capture and Processing Engine of the Present InventionEmploying Linear Optical Waveguide Technology for Collecting andConducting LED-Based Illumination in the Automatic Light ExposureMeasurement and Illumination Control Subsystem During ObjectIllumination and Image Capture Modes of Operation

Referring to FIGS. 40 through 54, it is appropriate at this juncture todescribe the digital image capture and processing engine of the presentinvention 220 employing light-pipe technology 221 for collecting andconducting LED-based illumination in the automatic light exposuremeasurement and illumination control subsystem 15 during objectillumination and image capture modes of operation.

As shown in FIG. 40, the digital image capture and processing engine 220is shown generating and projecting a visible illumination-based ImageCropping Pattern (ICP) 200 within the field of view (FOV) of the engine,during object illumination and image capture operations, as described inconnection with FIGS. 31 through 37B. Typically, as shown, the digitalimage capture and processing engine 220 will be embedded or integratedwithin a host system 222 which uses the digital output generated fromthe digital image capture and processing engine 220. The host system 222can be any system that requires the kind of information that the digitalimage capture and processing engine 220 can capture and process.

As shown in FIGS. 41 and 47, the digital image capture and processingengine 220 depicted in FIG. 40 is shown comprising: an assembly of anillumination/targeting optics panel 223; an illumination board 224; alens barrel assembly 225; a camera housing 226; a camera board 227; andimage processing board 230. As shown, these components are assembledinto an ultra-compact form factor offering advantages of light-weightconstruction, excellent thermal management, and exceptional imagecapture and processing performance. Also, camera housing 226 has a pairof integrated engine mounting projections 226A and 226B, each providedwith a hole through which a mounting screw can be passed to fix theengine relative to an optical bench or other support structure withinthe housing of the host system or device.

In FIG. 47, the digital image capture and processing engine 220 shown inFIG. 46 reveals the integration of a linear optical waveguide (i.e.light conductive pipe) component 221 within the engine housing.Preferably, optical waveguide 221 is made from a plastic material havinghigh light transmission characteristics, and low energy absorptioncharacteristics over the optical band of the engine (which is tuned tothe spectral characteristics of the LED illumination arrays andband-pass filter employed in the engine design). The function of opticalwaveguide 221 is to collect and conduct light energy from the FOV of theMulti-Mode Area-Type Image Formation and Detection Subsystem 13, anddirect it to the photo-detector 228 mounted on the camera board 227, andassociated with the Automatic Light Exposure Measurement andIllumination Control Subsystem 15. Notably, in the engine design of theillustrative embodiment, the optical waveguide 221 replaces theparabolic light collecting mirror 55 which is employed in the systemdesign shown in FIG. 6A. Use of the optical waveguide 221 in subsystem15 offers the advantage of ultra-small size and tight integration withinthe miniature housing of the digital image capture and processingengine. Upon assembling the engine components, the optical waveguide 221aligns with the photodiode 228 on the camera board which supportssubsystem 15, specified in great detail in FIGS. 6B through 6C2.

In FIG. 50, an exploded, perspective view of the digital image captureand processing engine 220 is provided to show how theillumination/targeting optics panel 23, the illumination board 224, thelens barrel assembly 225, the camera housing 226, the camera board 227,and its assembly pins 231A through 231D are easily arranged andassembled with respect to each other in accordance with the principlesof the present invention.

As shown in FIG. 50, the illumination board 224 of the illustrativeembodiment supports four (4) LEDs 238A through 238D, along with drivercircuitry, as generally taught in FIGS. 6C1 and 6C2. Also,illumination/targeting optics panel 223 supports light focusing lenses239A through 239D, for the LEDs in the illumination array supported onthe illumination board 224. Optical principles and techniques forspecifying lenses 239A through 239D are taught in FIGS. 4B through 4D7,and corresponding disclosure here. While a wide-area near/far field LEDillumination array is shown used in the digital image capture andprocessing engine of the illustrative embodiment 220, it is understoodthat the illumination array can be readily modified to support separatewide-area near field illumination and wide-area far field illumination,as well as narrow-area far and near fields of illumination, as taught ingreat detail herein with respect to systems disclosed in FIGS. 1 through39C2.

In FIG. 51, the illumination/targeting optics panel 223, theillumination board 224 and the camera board 230 of digital image captureand processing engine 220 are shown assembled with the lens barrelassembly 225 and the camera housing 226 removed for clarity ofillustration. In FIG. 52, the illumination/targeting optics panel 223and the illumination board 224 are shown assembled together as asubassembly 232 using the assembly pins. In FIG. 53, the subassembly 232of FIG. 52 is arranged in relation to the lens barrel assembly 225, thecamera housing 226, the camera board 227 and the image processing board230, showing how these system components are assembled together toproduce the digital image capture and processing engine 220 of FIG. 40.

In FIG. 54, the digital image capture and processing engine 220illustrated in FIGS. 40 through 53, is shown comprising: a Multi-ModeArea-Type Image Formation and Detection (i.e. Camera) Subsystem 14having image formation (camera) optics for producing a field of view(FOV) upon an object to be imaged and a CMOS or like area-type imagesensing array 22 for detecting imaged light reflected off the objectduring illumination operations in either (i) a narrow-area image capturemode in which a few central rows of pixels on the image sensing arrayare enabled, or (ii) a wide-area image capture mode in whichsubstantially all rows of the image sensing array are enabled; aLED-Based Illumination Subsystem 14 for producing a wide area field ofnarrow-band illumination within the FOV of the Image Formation AndDetection Subsystem 13 during the image capture mode, so that only lighttransmitted from the LED-Based Illumination Subsystem 14 and reflectedfrom the illuminated object and transmitted through a narrow-bandtransmission-type optical filter realized within the hand-supportablehousing (i.e. using a red-wavelength high-pass reflecting window filterelement disposed at the light transmission aperture thereof and alow-pass filter before the image sensor) is detected by the image sensorand all other components of ambient light are substantially rejected; anImage Cropping Pattern Generator 203 for generating a visibleillumination-based Image Cropping Pattern (ICP) 200 projected within thefield of view (FOV) of the Multi-Mode Area-type Image Formation andDetection Subsystem 13; an IR-Based Object Presence And Range DetectionSubsystem 12 for producing an IR-based object detection field within theFOV of the Image Formation and Detection Subsystem 13; an AutomaticLight Exposure Measurement and Illumination Control Subsystem 14 formeasuring illumination levels in the FOV and controlling the operationof the LED-Based Multi-Mode Illumination Subsystem 14 during the imagecapture mode; an Image Capturing and Buffering Subsystem 16 forcapturing and buffering 2-D images detected by the Image Formation andDetection Subsystem 13; an Image Processing and Cropped Image LocatingModule 201 for processing captured and buffered images to locate theimage region corresponding to the region defined by the Image CroppingPattern (ICP) 200; an Image Perspective Correction and Scaling Module202 for correcting the perspective of the cropped image region andscaling the corrected image to a predetermined (i.e. fixed) pixel imagesize suitable for decode-processing; a Multimode Image-Processing BasedBar Code Symbol Reading Subsystem 17 for processing cropped and scaledimages generated by the Image Perspective and Scaling Module 202 andreading 1D and 2D bar code symbols represented; and an Input/OutputSubsystem 18 for outputting processed image data and the like to anexternal host system or other information receiving or respondingdevice, in which each said subsystem component is integrated about aSystem Control Subsystem 19, as shown.

Notably, use of FOV folding mirror 236 can help to achieve a wider FOVbeyond the light transmission window, while using a housing havingnarrower depth dimensions. Also, use of the linear optical waveguide 221obviates the need for large aperture light collection optics whichrequires significant space within the housing.

Digital Image Capture and Processing Engine of the Present InventionEmploying Curved Optical Waveguide Technology for Collecting andConducting LED-Based Illumination in the Automatic Light ExposureMeasurement and Illumination Control Subsystem During ObjectIllumination and Image Capture Modes of Operation

In FIG. 55A, an alternative embodiment of the digital image capture andprocessing engine 220 of the present invention is shown reconfigured insuch as way that the illumination/aiming subassembly 232 (depicted inFIG. 52) is detached from the camera housing 226 and mounted adjacentthe light transmission window 233 of the engine housing 234. Theremaining subassembly, including lens barrel assembly 225, the camerahousing 226, the camera board 227 and the image processing board 230 ismounted relative to the bottom of the engine housing 234 so that theoptical axis of the camera lens assembly 225 is parallel with the lighttransmission aperture 233. A curved optical waveguide 221 is used tocollect light from a central portion of the field of view of the engine,and guide the collected light to photodiode 228 on the camera board 227.In addition, a field of view (FOV) folding mirror 236 is mounted beneaththe illumination/aiming subassembly 232 for directing the FOV of thesystem out through the central aperture 237 formed in theillumination/aiming subassembly 232. Use of the FOV folding mirror 236in this design can help to achieve a wider FOV beyond the lighttransmission window, while using housing having narrower depthdimensions. Also, use of the curved optical waveguide 221 obviates theneed for large aperture light collection optics which requiressignificant space within the housing.

Automatic Imaging-Based Bar Code Symbol Reading System of the PresentInvention Supporting Presentation-Type Modes of Operation UsingWide-Area Illumination and Video Image Capture and Processing Techniques

In FIGS. 55B1, 55B2 and 55B3, a presentation-type imaging-based bar codesymbol reading system 300 is shown constructed using the generalcomponents of the digital image capture and processing engine of FIG.55A1. As shown, the illumination/aiming subassembly 232′ of FIG. 52 ismounted adjacent the light transmission window 233′ of the systemhousing 301. The remaining subassembly, including lens barrel assembly225′, the camera housing 226′, the camera board 227′ and the imageprocessing board 230, is mounted relative to the bottom of the enginehousing 234′ so that the optical axis of the camera lens is parallelwith the light transmission aperture 233′. In addition, a field of view(FOV) folding mirror 236′ is mounted beneath the illumination/aimingsubassembly 232′ for directing the FOV of the system out through thecentral aperture formed in the illumination/aiming subassembly 232.

Automatic Imaging-Based Bar Code Symbol Reading System of the PresentInvention Supporting a Pass-Through Mode of Operation Using Narrow-AreaIllumination and Video Image Capture and Processing Techniques and aPresentation-Type Mode of Operation Using Wide-Area Illumination andVideo Image Capture and Processing Techniques

In FIGS. 55C1 through 55C4, there is shown an automatic imaging-basedbar code symbol reading system of the present invention 400 supporting apass-through mode of operation illustrated in FIG. 55C2 usingnarrow-area illumination and video image capture and processingtechniques, and a presentation-type mode of operation illustrated inFIG. 55C3 using wide-area illumination and video image capture andprocessing techniques. As shown in FIGS. 55C1 through 55C4, thePOS-based imaging system 400 employs a digital image capture andprocessing engine similar in design to that shown in FIGS. 55BB1 and55B2 and that shown in FIG. 2A1, except for the following differences:

(1) the Automatic Light Exposure Measurement and Illumination ControlSubsystem 15 is adapted to measure the light exposure on a centralportion of the CMOS image sensing array and control the operation of theLED-Based Multi-Mode Illumination Subsystem 14 in cooperation with a theMulti-Mode Image Processing Based Bar Code Symbol Reading Subsystem 17employing software for performing real-time “exposure quality analysis”of captured digital images in accordance with the adaptive systemcontrol method of the present invention, illustrated in FIGS. 27Athrough 27E;

(2) the substantially-coplanar narrow-area field of illumination andnarrow-area FOV 401 are oriented in the vertical direction (i.e.oriented along Up and Down directions) with respect to the countersurface of the POS environment, so as to support the “pass-through”imaging mode of the system, as illustrated in FIG. 55C2; and

(3) the IR-based object presence and range detection system 12 employedin FIG. 55A2 is replaced with an automatic IR-based object presence anddirection detection subsystem 12′ comprising four independent IR-basedobject presence and direction detection channels (i.e. fields) 402A,402B, 402C and 402D, generated by IR LED and photodiode pairs 12A1,12A2, 12A3 and 12A4 respectively, which automatically produce activationcontrol signals A1(t), A2(t), A3(t) and A4(t) upon detecting an objectmoving through the object presence and direction detection fields, and asignal analyzer and control logic block 12B′ for receiving andprocessing these activation control signals A1(t), A2(t), A3(t) andA4(t), according to Processing Rules 1 through 5 set forth in FIG. 55C4,so as to generate a control activation signal indicative that thedetected object is being moved either in a “pass-though” direction (e.g.L->R, R-->L, U→D, or D→U), or in a “presentation” direction (towards theimaging window of the system).

Preferably, this POS-based imaging system supports the adaptive controlprocess illustrated in FIG. 27A through 27E, and in the illustrativeembodiment of the present invention, operates generally according toSystem Mode No. 17, described hereinabove. In this POS-based imagingsystem, the “trigger signal” is generated from the automatic IR-basedobject presence and direction detection subsystem 12′. In theillustrative embodiment, the trigger signal can take on one or threepossible values, namely: (1) that no object has been detected in the FOVof the system; (2) that an object has been detected in the FOV and isbeing moved therethrough in a “Pass-Through” manner; or that an objecthas been detected in the FOV and is being moved therethrough in aPresentation” manner (i.e. toward the imaging window). For purposes ofexplanation below, trigger signal (1) above is deemed a “negative”trigger signal, whereas trigger signals (2) and (3) are deemed“positive” trigger signals.

In the event that the “Pass-Through” Mode (illustrated in FIG. 55C2) isenabled in response to detected movement of the object in the FOV fromL-R or R-→L, then the SCPs would be initially configured as follows:

(1) the shutter mode parameter will be set to the “Video Mode”(illustrated in FIG. 2E);

(2) the electronic gain of the image sensor will be set to a defaultvalue determined during factory calibration;

(3) the exposure time for blocks of image sensor pixels will be set to adefault determined during factory calibration;

(4) the illumination mode parameter will be set to “continuous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “narrow-area field”;

(7) the image capture mode parameter will be set to “narrow-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set, for example, to a defaultvalue; and

(10) the automatic object detection mode will be set to “ON”.

Also, the SCPR flag will be set to its FALSE value.

On the other hand, if the event that the “Presentation” Mode(illustrated in FIG. 55C3) is enabled in response to detected movementof the object in the FOV towards the imaging window of the system, thenthe SCPs would be initially configured as follows:

(1) the shutter mode parameter will be set to the “Video Mode”(illustrated in FIG. 2E);

(2) the electronic gain of the image sensor will be set to a defaultvalue determined during factory calibration;

(3) the exposure time for blocks of image sensor pixels will be set to adefault determined during factory calibration;

(4) the illumination mode parameter will be set to “continuous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “wide-area field”;

(7) the image capture mode parameter will be set to “wide-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set, for example, to a defaultvalue; and

(10) the automatic object detection mode will be set to “ON”.

Also, the SCPR flag will be set to its FALSE value.

Adaptive (Camera) System Control During Pass-Through Mode of Operation

Upon the generation of a “positive” trigger signal from subsystem 12′(i.e. that an object has been detected in the FOV and is being movedtherethrough in a “Pass-Through” manner, or that an object has beendetected in the FOV and is being moved therethrough in a Presentation”manner), the system will reconfigure itself only if the SCPR flag isTRUE; otherwise, the system will maintain its current SCPs. During thefirst pass through STEP 1, the SCPR flag will be FALSE, and thereforethe system will maintain its SCPs at their default settings. For purposeof illustration, assume that trigger signal (2) was generated,indicative of Pass-Through object detection and movement.

Then at STEP 2 in FIG. 27A, the object will be continuously illuminatedwithin a narrow-field of LED-based illumination produced by theillumination subsystem, and a sequence of narrow-area digital imageswill be captured by the image formation and detection subsystem andbuffered to reconstruct 2D images, while the CMOS image sensing array isoperated in its Video Mode of operation.

At STEP 3 in FIG. 27B, the reconstructed digital image will be analyzedfor exposure quality (e.g. brightness level, saturation etc.).

At STEP 4, if the measured/calculated exposure quality values do notsatisfy the exposure quality threshold (EQT) parameters, then the systemrecalculates new SCPs and sets the SCPR flag to TRUE, indicating thatthe system must be reconfigured prior to acquiring a digital imageduring the next wide-area image acquisition cycle while the CMOS sensingarray is operated in its Video Mode. Otherwise, the SCPs are maintainedby the system.

At STEP 5, the system attempts to read a 1D bar code symbol in thecaptured reconstructed 2D digital image.

At STEP 6, if the system is incapable of reading the bar code symbol(i.e. decoding fails), then the system returns to STEP 1 andreconfigures its SCPs if the SCPR flag is set to TRUE (i.e. indicativeof unsatisfactory exposure quality in the captured image). In the caseof reconfiguration, the system might reset the SCPs as follows:

(1) the shutter mode parameter—set to “Video Mode” illustrated in FIG.27E;

(2) the electronic gain of the image sensor—set to the value calculatedduring STEP 4;

(3) the exposure time for blocks of image sensor pixels—set to a valuesdetermined during STEP 4;

(4) the illumination mode parameter—set to “continuous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “narrow-area field”;

(7) the image capture mode parameter will be set to “narrow-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set to the default value; and

(10) the automatic object detection mode will be set to ON.

Then at STEPS 2-4, the system captures a second 2D image usingcontinuous LED illumination and the image sensing array configured inits Video Mode (illustrated in FIG. 27E), and recalculates ExposureQuality Threshold Parameters and if the exposure quality does notsatisfy the current Exposure Quality Threshold Parameters, then thesystem calculates new SCPs and sets the SCPR flag to TRUE. Otherwise,the system maintains the SCPs, and proceeds to attempt to decode a barcode symbol in the 2D reconstructed digital image captured usingcontinuous LED illumination.

If at STEPS 5 and 6, bar code decoding is successful, then at STEP 7 thesystem transmits the results (i.e. symbol character data) to the hostthe system, and/or at STEP 8, transmits the captured digital image tothe host system for storage or processing, or to internal memory forstorage, and then exits the control process at STEP 9.

If at STEPS 5 and 6 in Block B2 in FIG. 27B, bar code decoding fails,then the system returns to STEP 1, and reconfigures for narrow-areaillumination and image capture. If while operating in its narrow-areaillumination and image capture modes of operation, the image captured bythe system had an “exposure quality” which did not satisfy the ExposureQuality Threshold Parameters and indicated that the light exposure wasstill too bright and saturated, and the recalculated SCPs requiredswitching to a new level of electronic gain (or illumination control),to reduce exposure brightness, then at STEP 1 the SCPs are reconfiguredusing the SCPs previously computed at STEP 4. Thereafter, the object isilluminated using, for example, ambient illumination and captured atSTEP 2, and at STEP 3, the captured/reconstructed 2D image is analyzedfor exposure quality, as described above. At STEP 4, the exposurequality measured in STEP 3 is compared with the Exposure QualityThreshold parameters, and if it does not satisfy these parameters, thennew SCPs are calculated and the SCPR flag is set to TRUE. Otherwise thesystem maintains the SCPs using current SCPs. At STEPs 5 and 6, bar codedecoding is attempted, and if it is successful, then at STEPS 7 and 8,symbol character data and image data are transmitted to the host system,and then the system exits the control process at STEP 9. If bar codedecoding fails, then the system returns to STEP 1 to repeat STEPS withinBlocks B1 and B2 of FIGS. 27A and 27B, provided that the automatictrigger signal (2) is still persistent (indicative that the object isstill within the field of view of the digital imager). During thissecond pass through the control loop of Blocks B1 and B2, the systemwill reconfigure the system as determined by the exposure qualityanalysis performed at STEP B1, and calculations performed at STEP 4.Notably, such calculations could involve calculating new SCPs thatrequire adjusting illumination and/or image sensing array parametersduring the narrow-area image capture mode, that is, as the analysis ofthe facts may require, according to the adaptive control process of thepresent invention. Recycling this control loop will reoccur as long as abar code symbol has not been successfully read, and the automatictrigger signal (2) is persistently generated by the IR-based automaticobject detecting subsystem 12′.

Adaptive System Control During Presentation (Camera) Mode of Operation

In the event that trigger signal (3) was generated, indicative ofPresentation object detection and movement, then at STEP 2 in FIG. 27A,the object will be continuously illuminated within a wide-field ofLED-based illumination produced by the illumination subsystem, and asequence of wide-area (2D) digital images will be captured by the imageformation and detection subsystem and buffered, while the CMOS imagesensing array is operated in its Video Mode of operation.

At STEP 3 in FIG. 27B, the reconstructed digital image will be analyzedfor exposure quality (e.g. brightness level, saturation etc.).

At STEP 4, if the measured/calculated exposure quality values do notsatisfy the exposure quality threshold (EQT) parameters, then the systemrecalculates new SCPs and sets the SCPR flag to TRUE, indicating thatthe system must be reconfigured prior to acquiring a digital imageduring the next wide-area image acquisition cycle while the CMOS sensingarray is operated in its Video Mode. Otherwise, the SCPs are maintainedby the system.

At STEP 5, the system attempts to read a 1D bar code symbol in thecaptured wide-area digital image.

At STEP 6, if the system is incapable of reading the bar code symbol(i.e. decoding fails), then the system returns to STEP 1 andreconfigures its SCPs if the SCPR flag is set to TRUE (i.e. indicativeof unsatisfactory exposure quality in the captured image). In the caseof reconfiguration, the system might reset the SCPs as follows:

(1) the shutter mode parameter—set to “Video Mode” illustrated in FIG.27E;

(2) the electronic gain of the image sensor—set to the value calculatedduring STEP 4;

(3) the exposure time for blocks of image sensor pixels—set to a valuesdetermined during STEP 4;

(4) the illumination mode parameter—set to “continuous”;

(5) the automatic illumination control parameter will be set to “ON”;

(6) the illumination field type will be set to “wide-area field”;

(7) the image capture mode parameter will be set to “wide-area imagecapture”;

(8) the image capture control parameter will be set to “video frame”;

(9) the image processing mode will be set to the default value; and

(10) the automatic object detection mode will be set to ON.

Then at STEPS 2-4, the system captures a second 2D image usingcontinuous LED illumination and the image sensing array configured inits Video Mode (illustrated in FIG. 27E), and recalculates ExposureQuality Threshold Parameters and if the exposure quality does notsatisfy the current Exposure Quality Threshold Parameters, then thesystem calculates new SCPs and sets the SCPR flag to TRUE. Otherwise,the system maintains the SCPs, and proceeds to attempt to decode a barcode symbol in the 2D reconstructed digital image captured usingcontinuous LED illumination.

If at STEPS 5 and 6, bar code decoding is successful, then at STEP 7 thesystem transmits the results (i.e. symbol character data) to the hostthe system, and/or at STEP 8, transmits the captured digital image tothe host system for storage or processing, or to internal memory forstorage, and then exits the control process at STEP 9.

If at STEPS 5 and 6 in Block B2 in FIG. 27B, bar code decoding fails,then the system returns to STEP 1, and reconfigures for wide-areaillumination and image capture. If while operating in its wide-areaillumination and image capture modes of operation, the image captured bythe system had an “exposure quality” which did not satisfy the ExposureQuality Threshold Parameters and indicated that the light exposure wasstill too bright and saturated, and the recalculated SCPs requiredswitching to a new level of electronic gain (or illumination control),to reduce exposure brightness, then at STEP 1 the SCPs are reconfiguredusing the SCPs previously computed at STEP 4. Thereafter, the object isilluminated with ambient illumination and captured at STEP 2, and atSTEP 3, the captured wide-area image is analyzed for exposure quality,as described above. At STEP 4, the exposure quality measured in STEP 3is compared with the Exposure Quality Threshold parameters, and if itdoes not satisfy these parameters, then new SCPs are calculated and theSCPR flag is set to TRUE. Otherwise the system maintains the SCPs usingcurrent SCPs. At STEPs 5 and 6, bar code decoding is attempted, and ifit is successful, then at STEPS 7 and 8, symbol character data and imagedata are transmitted to the host system, and then the system exits thecontrol process at STEP 9. If bar code decoding fails, then the systemreturns to STEP 1 to repeat STEPS within Blocks B1 and B2 of FIGS. 27Aand 27B, provided that the automatic trigger signal (3) is stillpersistent (indicative that the object is still within the field of viewof the digital imager). During this second pass through the control loopof Blocks B1 and B2, the system will reconfigure the system asdetermined by the exposure quality analysis performed at STEP B1, andcalculations performed at STEP 4. Notably, such calculations couldinvolve calculating new SCPs that require adjusting illumination and/orimage sensing array parameters during the wide-area image capture mode,that is, as the analysis of the facts may require, according to theadaptive control process of the present invention. Recycling thiscontrol loop will reoccur as long as a bar code symbol has not beensuccessfully read, and the automatic trigger signal (3) is persistentlygenerated by the IR-based automatic object detecting subsystem 12′.

By virtue of the intelligent automatic pass-through/presentation digitalimage capture and processing system of the present invention, it is nowpossible for operators to move objects past the imager in either apass-through or presentation type manner, and the system willautomatically adapt and reconfigure itself to optimally support themethod of image-based scanning chosen by the operator.

Alternative Embodiments of Digital-Imaging Based Bar Code Symbol ReadingSystem of the Present Invention

In FIG. 56A, a first alternative embodiment of a projection-type POSimage-processing based bar code symbol reading system 250 is shownemploying the digital image capture and processing engine 220 or 220′.As shown, system 250 includes a housing 241 which may contain the enginehousing shown in FIG. 55A1, or alternatively, it may support thesubassemblies and components shown in FIG. 55A1.

In FIG. 56B, a second illustrative embodiment of a projection-type POSimage-processing based bar code symbol reading system 260 is shownemploying the digital image capture and processing engine 220 or 220′.As shown, system 260 includes a housing 261 which may contain the enginehousing shown in FIG. 55A1, or alternatively, it may support thesubassemblies and components shown in FIG. 55A1.

In FIG. 56C, a third illustrative embodiment of a projection-type POSimage-processing based bar code symbol reading system 270 is shownemploying the digital image capture and processing engin2 220 or 220′.As shown, system 270 includes a housing portion 271 (containing engine220 or 220′), and a base portion 272 for rotatably supporting housingportion 271. Housing portion 271 may contain the engine housing shown inFIG. 55A1, or alternatively, it may support the subassemblies andcomponents shown in FIG. 55A1.

In each of the POS-based systems disclosed in FIGS. 56A, 56B and 56C,the number of VLDs mounted on the illumination board 224 can besubstantially greater than four (4), as shown in the illustrativeembodiment in FIG. 55. The exact number of LEDs used in the illuminationwill depend on the end-user application requirements at hand. Also, theIR-Based Object Presence And Range Detection Subsystem 12 employedtherein may be used to detect the range of an object within the FOV, andthe LED-Based Illumination Subsystem 14 may include both long and shortrange wide-area LED illumination arrays, as disclosed hereinabove, foroptimized illumination of long and short range regions of the FOV duringimage capture operations.

In FIG. 57, a price lookup unit (PLU) system 280 is shown comprising: ahousing 281 with mounting bracket; a LCD panel 282; a computing platform283 with network interfaces etc, and a digital image capture andprocessing subsystem 220 or 220′ of the present invention, foridentifying bar coded consumer products in retail store environments,and displaying the price thereof on the LCD panel 282.

Some Modifications which Readily Come to Mind

In alternative embodiments of the present invention, illumination arrays27, 28 and 29 employed within the Multi-Mode Illumination Subsystem 14may be realized using solid-state light sources other than LEDs, suchas, for example, visible laser diode (VLDs) taught in great detail inWIPO Publication No. WO 02/43195 A2, published on May 30, 2002, assignedto Metrologic Instruments, Inc., and incorporated herein by reference inits entirety as if set forth fully herein. However, when using VLD-basedillumination techniques in the imaging-based bar code symbol reader ofthe present invention, great care must be taken to eliminate orotherwise substantially reduce speckle-noise generated at the imagedetection array 22 when using coherent illumination source during objectillumination and imaging operations. WIPO Publication No. WO 02/43195A2, supra, provides diverse methods of and apparatus for eliminating orsubstantially reducing speckle-noise during image formation anddetection when using VLD-based illumination arrays.

While CMOS image sensing array technology was described as being used inthe preferred embodiments of the present invention, it is understoodthat in alternative embodiments, CCD-type image sensing arraytechnology, as well as other kinds of image detection technology, can beused.

The bar code reader design described in great detail hereinabove can bereadily adapted for use as an industrial or commercial fixed-positionbar code reader/imager, having the interfaces commonly used in theindustrial world, such as Ethernet TCP/IP for instance. By providing thesystem with an Ethernet TCP/IP port, a number of useful features will beenabled, such as, for example: multi-user access to such bar codereading systems over the Internet; control of multiple bar code readingsystem on the network from a single user application; efficient use ofsuch bar code reading systems in live video operations; web-servicing ofsuch bar code reading systems, i.e. controlling the system or a networkof systems from an Internet Browser; and the like.

While the illustrative embodiments of the present invention have beendescribed in connection with various types of bar code symbol readingapplications involving 1-D and 2-D bar code structures, it is understoodthat the present invention can be use to read (i.e. recognize) anymachine-readable indicia, dataform, or graphically-encoded form ofintelligence, including, but not limited to bar code symbol structures,alphanumeric character recognition strings, handwriting, and diversedataforms currently known in the art or to be developed in the future.Hereinafter, the term “code symbol” shall be deemed to include all suchinformation carrying structures and other forms of graphically-encodedintelligence.

Also, imaging-based bar code symbol readers of the present invention canalso be used to capture and process various kinds of graphical imagesincluding photos and marks printed on driver licenses, permits, creditcards, debit cards, or the like, in diverse user applications.

It is understood that the image capture and processing technologyemployed in bar code symbol reading systems of the illustrativeembodiments may be modified in a variety of ways which will becomereadily apparent to those skilled in the art of having the benefit ofthe novel teachings disclosed herein. All such modifications andvariations of the illustrative embodiments thereof shall be deemed to bewithin the scope and spirit of the present invention as defined by theClaims to Invention appended hereto.

1. A method of dynamically managing system control parameters in adigital image capture and processing system used in a particularapplication, said method comprising the steps of: (a) in the presence ofan object to be illuminated and imaged, providing a digital imagecapture and processing system including (1) a digital image formationand detection subsystem having an area-type image detection array fordetecting digital images of an object within a field of view (FOV)during object illumination and imaging operations, and beingcharacterized by one or more system control parameters (SCPs) selectedfrom a first group of SCPs, (2) an illumination subsystem having anillumination array for producing and projecting a field of illuminationwithin said FOV during said object illumination and imaging operations,and being characterized by one or more system control parameters (SCPs)selected from a second group of SCPs, (3) an automatic illuminationcontrol subsystem for controlling said illumination array during saidobject illumination and imaging operations, (4) a digital imagecapturing and buffering subsystem for capturing and buffering saiddigital images in memory, during said object illumination and imagingoperations, (5) a digital image processing subsystem for processing saiddigital images and (i) measuring the exposure quality of said digitalimages, and (ii) reading one or more 1D and/or 2D code symbolsgraphically represented in said digital images, and producing symbolcharacter data representative of said read one or more 1D and/or 2D codesymbols, (6) an input/output subsystem for transmitting said symbolcharacter data to an external host system or other information receivingor responding device, and (7) a system control system for managingexposure quality threshold (EQT) parameters and said SCPs in memory, andalso controlling and/or coordinating the operation of said subsystemsidentified above; (b) initializing said digital image capture andprocessing system by setting an initial or default set of SCPs; (c)resetting a SCP reconfiguration (SCPR) flag to a first value, indicatingthat said digital image capture and processing system should not bereconfigured; (d) calculating and setting exposure quality threshold(EQT) parameters in said digital image capture and processing system;(e) upon the occurrence of a trigger event signal generated within saiddigital image capture and processing system, performing the followingoperations: (1) determining whether or not said SCPR flag should be setto said first value, or a second value indicating that said digitalimage capture and processing system should be reconfigured; (2) if saidSCPR flag is set to said second value, indicative that said digitalimage capture and processing system should be reconfigured, thenreconfiguring said digital image capture and processing system using anew set of SCPs; and if said SCPR flag is set to said second value, thenmaintaining said digital image capture and processing system using thecurrent set of SCPs; (3) illuminating said object using a method ofillumination indicated by the current set of SCPs, and capturing adigital image of said object; (4) analyzing the captured digital imagefor exposure quality; (5) if the measured exposure quality does notsatisfy the exposure quality threshold (EQT) parameters, thencalculating a new set of SCPs and setting said SCPR flag to said secondvalue indicating that said digital image capture and processing systemshould be reconfigured prior to acquiring a digital image during thenext image acquisition cycle in said system; otherwise, maintaining saiddigital image capture and processing system using the current set ofSCPs; (6) if reading a bar code symbol in said digital image is requiredin said particular application, then said digital image processingsubsystem attempting to process said digital image and reading a barcodesymbol graphically represented in said digital image; (7) if saiddigital image processing subsystem fails to read a barcode symbol insaid digital image, or if barcode reading is not required by saidparticular application, and said digital image processing subsystemdetermined that said exposure quality does not satisfy said exposurequality threshold parameters, then said digital image capture andprocessing system returns to substep (2) above; (8) if said digitalimage processing subsystem successfully reads a barcode symbol in saiddigital image, then said input/output subsystem transmits symbolcharacter data and/or said digital image to a host system; and (9) ifrequired by said particular application, said input/output subsystemtransmits said digital image to said host system, or stores said digitalimage in memory aboard said digital image capture and processing system.2. The method of claim 1, wherein said first group of SCPs are selectedfrom the group consisting of: (i) a shutter mode of image sensorparameter, (ii) an electronic gain parameter, (iii) a programmableexposure time parameter, for each block of pixels detected in said imagedetection array, (iv) an image capture mode parameter, and (v) an imagecapture control parameter.
 3. The method of claim 1, wherein said secondgroup of SCPs are selected from the group consisting of: (i) anillumination mode parameter, (ii) an automatic illumination controlparameter, (iii) an illumination field type parameter; and (iv)automatic object detection mode parameter.
 4. The method of claim 2,wherein said shutter mode of image sensor parameter is selected from thegroup consisting of a single frame shutter mode parameter, a rollingshutter mode parameter, and a video mode parameter.
 5. The method ofclaim 3, wherein said illumination mode parameter is selected from thegroup consisting of OFF, continuously ON, and strobe/flash values. 6.The method of claim 3, wherein said automatic illumination controlparameter is selected from the group consisting of ON and OFF values. 7.The method of claim 3, wherein said illumination field type parameter isselected from the group consisting of narrow-area field of illumination,and wide-area field of illumination.
 8. The method of claim 3, whereinsaid image capture mode parameter is selected from the group consistingof narrow-area image capture, and wide-area image capture.
 9. The methodof claim 3, wherein said image capture control parameter is selectedfrom the group consisting of single frame and video frame.
 10. Themethod of claim 3, wherein said automatic object detection modeparameter is selected from the group consisting of ON and OFF values.11. The method of claim 1, wherein said exposure quality threshold (EQT)parameters are selected from the group consisting of brightness leveland image saturation.
 12. The method of claim 1 wherein said digitalimage capture and processing system further comprises an automaticobject detection subsystem for detecting the presence of the objectwithin said FOV, and generating said triggering event signal in responseto the detection of said object within said FOV.
 13. The method of claim1 wherein said system further comprises a manually-actuatable triggerswitch for generating said triggering event signal in response to themanual activation of said trigger switch.
 14. The method of claim 1,wherein said digital image capture and processing system is realized inthe form of a hand-supportable digital-imaging based bar code symbolreader.
 15. The method of claim 1, wherein said digital image captureand processing system is realized in the form of a presentation-typedigital-imaging based bar code symbol reader.
 16. The method of claim 1,wherein said digital image capture and processing system is realized inthe form of a digital-imaging based bar code symbol reading engineintegrated in said host system or with said external device.